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当is时,上面的代码应该不是问题nil。在 Objective-C 中允许向 发送消息,nil结果将再次为nil. 问题必须出在其他地方。当您尝试使用 else 时,可能在这部分之后的某个地方name,例如将其添加到数组或字典中。

考虑将 a 替换nil name为空字符串。

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