2013-09-11 2 views
8

Я готовлю мое приложение к iOS7 и имею странную проблему:TextField возвращается ноль, когда он пуст

Когда я пытаюсь получить пустой текст TextField я получаю «ноль», в то время как в прошлом он использовал для возврата @ "" (пустая строка).

Это официальное изменение или ошибка?

Благодаря Шани

ответ

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:@""]) { 
6

Еще одна вещь, которую я думаю, что вы можете сделать, это: -

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

выше будет обрабатывать как пустые строки, а также ноль. Так как отправка сообщения длины на нуль возвращает 0.

5

Да, формальное изменение. Так что вам нужно обрабатывать как этот

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

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

или

Это условие для обеих прошивкой 7 и более ранней версии.

if([self.tf.text length] != 0) 
{ 
// do your stuff 
} 
Смежные вопросы