TextField在为空时返回nil

sha*_*oga 8 ios ios7

我正准备我的应用程序到iOS7并有一个奇怪的问题:

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

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

谢谢Shani

mar*_*sei 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:@""]) {
Run Code Online (Sandbox Code Playgroud)


Max*_*Max 6

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

if([self.tf.text length] != 0)
{
// do whatever
}
Run Code Online (Sandbox Code Playgroud)

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


Dha*_*ngh 5

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

// For iOS 6
if (![self.tf.text isEqualToString:@""])
{
}

// For iOS 7    
if (self.tf.text != nil && [self.tf.text length] != 0)
{
}
Run Code Online (Sandbox Code Playgroud)

要么

适用于iOS 7和早期版本的此条件.

if([self.tf.text length] != 0)
{
// do your stuff
}
Run Code Online (Sandbox Code Playgroud)