0

次のような入力を取得するフォーム フィールドがあります。

 NSString *name = personName.text;

それから私はこれをやっています:

NSString *name = [name stringByTrimmingCharactersInSet:
              [NSCharacterSet whitespaceAndNewlineCharacterSet]];  

しかし、余分な文字列は消えないようです。私は何か間違ったことをしていますか?例外が生成されないように、入力が nil の場合にトリップせずにフィールド値を取得したときにトリムを正しく行う方法はありますか?

ありがとう!

4

2 に答える 2

2

よくわかりませんが、「名前」を再度作成するべきではないと思います。直接割り当てるだけです。同様に: name = [name stringByTrimmingCharactersInSet: [NSCharacterSet whitespaceAndNewlineCharacterSet]];

于 2012-11-02T20:05:19.893 に答える
1

nameの場合、上記のコードは問題になりませんnil。Objective-C ではへのメッセージの送信nilが許可されており、結果は再び になりnilます。問題は別の場所にあるはずです。name配列や辞書に追加するなど、それ以外の方法で使用しようとすると、おそらくこの部分の後のどこかになります。

nil nameaを空の文字列に置き換えることを検討してください。

if (!name) name = @"";
于 2012-11-02T17:40:30.407 に答える