2014-02-14 1 views
0

У меня есть пробник с переменной String, которая отображается как null.Ошибка приложения с нулевой переменной

NSLog(@"rate : %@",_rate);  //-->  rate : <null> 

аварий приложение, когда я пытаюсь:

if ([_rate length]== 0) //app crash 

с сообщением: - [длина NSNull]: непризнанные селектор направил к экземпляру

Самое странное в том, что с помощью:

if (_rate == nil) and  if (_rate == NULL) 

переменная кажется не нулевой или нулевой.

Любые предложения?

ответ

1

Это означает, что _rate является примером NSNull.

if (rate == [NSNull null]) { 
    // It's set to "NSNull null" 
} else { 
    // It's a value you can work with 
} 

Чтобы избежать предупреждения (с rate является NSString), вы можете сделать:

if ([rate isEqual:[NSNull null]]) { 
+0

Tx. Приложения теперь не выходят из строя, хотя появляется предупреждение «Сравнение типов указателей distinc (« NSString »*) и NSNull *». – doxsi

+1

См. Мой обновленный ответ. – rmaddy