我正在为 iOS7 准备我的应用程序并遇到一个奇怪的问题:
当我试图获取一个空的 TextField 文本时,我得到“nil”,而过去它曾经返回 @""(空字符串)。
那是正式的更改还是错误?
谢谢沙妮
这是从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:@""]) {
我认为您可以做的另一件事是:-
if([self.tf.text length] != 0)
{
// do whatever
}
上面将处理空字符串和 nil。由于向 nil 发送长度消息返回 0。
是的,它是一个正式的变化。所以你需要这样处理
// 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
}