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为空时禁用按钮等待其他文本字段中的任何更改

文本字段为空时禁用按钮

ForEach 通过多个 TextField 来验证 SwiftUI 中是不是为空

结果为空时LINQ返回啥

当值为空或为空时如何返回默认值