我正在存储一个NSInteger
内部NSValue
,并在检索值时得到一个垃圾值。有趣的是,我在 iPhone 6 上得到了这个垃圾值,而在 iPhone 5 上得到了正确的值。
这是我的代码的一部分:
NSValue *unknown = nil;
[self getValueForUnknown:&unknown];
if (unknown) {
NSInteger unknownInt;
[unknown getValue:&unknownInt];
NSLog(@"%lu", (unsigned long)unknownInt); // prints the correct value on iPhone 5 but a garbage value on iPhone 6
}
...
- (void)getValueForUnknown:(NSValue **)unknownArg {
int x = 0;
*unknownArg = [NSValue value:&x withObjCType:@encode(int)];
}
注意:两个设备都在运行iOS 9.3.1