Objective c 目标-C值forkey int返回不正确的值
因此,我目前正在处理一个Objective-C项目,我正在调用Objective c 目标-C值forkey int返回不正确的值,objective-c,Objective C,因此,我目前正在处理一个Objective-C项目,我正在调用[mySpecialObject valueForKey:@“myVariable”],它应该返回值3(一个整数) 通过调试器,键处的对象值实际上是3,但是调用[myspecialobjectvalueforkey:@“myVariable”]返回807 类型转换(id)[mySpecialObject valueForKey:@“myVariable”]返回(\uu NSCFNumber*)0x0000000000000327(in
[mySpecialObject valueForKey:@“myVariable”]
,它应该返回值3(一个整数)
通过调试器,键处的对象值实际上是3,但是调用[myspecialobjectvalueforkey:@“myVariable”]
返回807
类型转换(id)[mySpecialObject valueForKey:@“myVariable”]
返回(\uu NSCFNumber*)0x0000000000000327(int)3
有人知道是什么导致了这种不匹配吗?我打字打错了吗
格式:
[mySpecialObject valueForKey:@"myVariable"] // SHOULD RETURN 3
(int)[mySpecialObject valueForKey:@"myVariable"] // returns 807
(id)[mySpecialObject valueForKey:@"myVariable"] // returns (__NSCFNumber *)0x0000000000000327 (int)3
注意:为了清楚起见,myVariable在mySpecialObject中是int类型的,我将返回值强制转换为int。因为
valueForKey:
方法返回一个id
,所以它必须将所有原语包装到Objective-C对象中。在这种情况下,int
被包装在NSNumber
对象中
如果您知道字段/属性的类型为int
,请执行以下操作:
int num = [[mySpecialObject valueForKey:@"myVariable"] intValue];
参考文件: