Ios Can';无法从NSDictionary获取int
我只想从我的字典中得到一个字段。我想得到整数变量,但有些事情很奇怪 我想给你们看一个Xcode的截图,在那里我得到了变量值。变量“price”是整数,应该等于0,您能帮助我吗 我以以下方式创建此词典:Ios Can';无法从NSDictionary获取int,ios,objective-c,nsdictionary,Ios,Objective C,Nsdictionary,我只想从我的字典中得到一个字段。我想得到整数变量,但有些事情很奇怪 我想给你们看一个Xcode的截图,在那里我得到了变量值。变量“price”是整数,应该等于0,您能帮助我吗 我以以下方式创建此词典: NSDictionary * dict = [[NSDictionary alloc] initWithObjectsAndKeys: [NSString stringWithFormat:@"%@",[dicti
NSDictionary * dict = [[NSDictionary alloc] initWithObjectsAndKeys:
[NSString stringWithFormat:@"%@",[dictionary objectForKey:@"price"]], @"price",
pairedData2, @"uniqueName",
[NSString stringWithFormat:@"0"],@"wasPurchased",
[dictionary objectForKey:@"link"],@"videoLink",
[NSString stringWithFormat:@"%@", [dictionary objectForKey:@"enable"]], @"enable",
nil];
可变价格不能是整数。 NSDictionary中的每个键和值都必须是NSObject。 因此,它可能是一个数字。检索NSNumber值的操作如下所示:
NSNumber *number = @(2);
int numberAsInt = number.intValue;
希望这有助于价格
键的值要么是值为@“0”
的NSString
,要么是值为0
的NSNumber
。你没有提供足够的信息来知道这两个是哪一个
在调试器中,首先执行以下操作(我是缩写):
采购订单[@“价格”]
这给出了以下各项的预期和正确输出:
0
因为这是NSNumber
或NSString
的值
然后你会:
采购订单[@“价格”]==0
你会得到:
假的
这也是正确和预期的结果。由于dict[@“price”]
的结果是一个非nil对象指针,并且您询问该指针是否为nil
(==0
与==nil
相同),因此会得到false
。由于不能在字典中存储nil
对象,因此结果不会nil
,并且会报告false
要查看NSNumber
或NSString
的值是否为0
,应执行以下操作:
采购订单[@“价格”].intValue==0
您将获得以下期望结果:
真的
您最后一次尝试:
采购订单[@“价格”].intValue
导致:
零
这也是正确的结果,因为dict[@“price”]的值。intValue
是0
的int
值。但是您使用了po
,这意味着print object
,因此0
被解释为nil
。如果您这样做:
p dict[@“price”].intValue
您将获得以下所需的结果:
0
使用po
打印对象值。使用p
打印基本值(例如int
)。我编辑了我的问题并演示了如何创建此词典。我将此零保存为NSSting(您仍然可以使用intValue.NSString*NumberString=@“2”;int number=NumberString.intValue