我正在从服务器加载数据,但我有一个问题,即我返回的值为零(0)而我无法进入内部。请问哪里会有问题?
-(void)method1
{
NSNumber *value = [data objectForKey:@"samount"];
NSLog(@"number is -%@-", value); //number is -0-
if (value == 0)
{
NSLog(@" OK :) ");
}
else
{
NSLog(@" Bad :( ");
}
}
答案 0 :(得分:7)
使用isEqual:
if ([value isEqual:@(0)])
如果value
为nil
(其中==
与floatValue
或类似方法的比较失败,那么也会正确评估)
答案 1 :(得分:3)
value
是一个对象,更确切地说是一个NSString
对象(根据你在Alladinian的回答中的评论),但是你正在检查它的地址。您可以使用NSNumber
将字符串转换为NSNumberFormatter
,然后检查其值或依赖NSString的内置方法:integerValue
,floatValue
等。
假设value
是NSNumber
/ NSString
:
if ([value integerValue] == 0)
请参阅NSString
文档中的Getting Numeric Values和NSNumber
文档中的Accessing Numeric Values,然后选择最适合您数据类型的方法。