TextField 为空时返回 nil
Posted
技术标签:
【中文标题】TextField 为空时返回 nil【英文标题】:TextField is returning nil when it is empty 【发布时间】:2013-09-11 12:32:01 【问题描述】:我正在为 ios7 准备我的应用程序并遇到一个奇怪的问题:
当我试图获取一个空的 TextField 文本时,我得到“nil”,而在过去它曾经返回 @""(空字符串)。
这是正式的更改还是错误?
谢谢 沙尼
【问题讨论】:
【参考方案1】:这是从iOS6到iOS7的正式变化。文本字段用于返回一个空字符串,但现在您有一个 nil
字符串代替。
@property (weak, nonatomic) IBOutlet UITextField *tf;
// iOS6
if (![self.tf.text isEqualToString:@""])
// iOS7
if (self.tf.text != nil && ![self.tf.text isEqualToString:@""])
【讨论】:
【参考方案2】:我认为你可以做的另一件事是:-
if([self.tf.text length] != 0)
// do whatever
上面将处理空字符串以及 nil。由于向 nil 发送长度消息返回 0。
【讨论】:
【参考方案3】:是的,这是一个正式的更改。所以你需要这样处理
// For iOS 6
if (![self.tf.text isEqualToString:@""])
// For iOS 7
if (self.tf.text != nil && [self.tf.text length] != 0)
或
iOS 7 及更早版本均适用此条件。
if([self.tf.text length] != 0)
// do your stuff
【讨论】:
以上是关于TextField 为空时返回 nil的主要内容,如果未能解决你的问题,请参考以下文章
当 TextField 为空时 MUIInputLabel 不会增长
当textfield为空时禁用按钮等待其他文本字段中的任何更改