高度な検索
Developer Connection
Member Login ログイン | ご入会 ADC連絡先

Technical Q&A QA1202
Why does -stringByTrimmingCharactersInSet: give me an empty string result when it shouldn't?


Q: -stringByTrimmingCharactersInSet: の結果が、空になるべきではない場合に空の文字列になるのはなぜですか?

A: Mac OS X v10.2 では、新しい NSString ルーチン、-stringByTrimmingCharactersInSet: が追加されています。このルーチンは、文字列を、その両端から文字セットに含まれる文字を削除した状態で返します。しかし、切り取られる文字が、受け取る NSString の先頭だけにあって、切り取り後の文字列が 1 文字分の長さしかない場合、このルーチンでは、誤って空の文字列を返します。このバグは、Mac OS X の次期メジャーリリースにおいて修正されるはずです。それまでは、コードを上記のようなバグのある使用法に合わせる機会があっても、このルーチンの使用は避けるべきです。あるいは、変化しやすい文字列を切り取る必要があり、なおかつ空白の切り取りだけに関心がある場合は、CFStringTrimWhitespace() を使用することです。


[2002 年 10 月 9 日]