TextField在为空时返回nil

时间:2013-09-11 12:32:01

标签: ios ios7

我正准备将我的应用程序安装到iOS7并遇到一个奇怪的问题:

当我试图获取一个空的TextField文本时,我得到“nil”,而在过去它曾经返回@“”(空字符串)。

这是正式的变更还是错误?

由于 沙尼

3 个答案:

答案 0 :(得分:10)

这是从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:@""]) {

答案 1 :(得分:6)

我认为你可以做的另一件事是: -

if([self.tf.text length] != 0)
{
// do whatever
}

以上将处理空字符串以及nil。由于将长度消息发送到nil会返回0。

答案 2 :(得分:5)

是的,这是一个正式的变革。所以你需要像这样处理

// 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
}