在 Core Data 中,我有许多属性声明为 Integer 64,然后通过 NSNumber 属性访问(默认情况下)。
我是否通过以下方式存储和访问这些值是否重要:
NSNumber *mySetValue = [NSNumber numberWithInt:someIntValue];
[myObject setMyNumberProperty:mySetValue];
int myRetrievedValue = [myObject.myNumberProperty intValue];
或通过
NSNumber *mySetValue = [NSNumber numberWithInteger:someIntegerValue];
[myObject setMyNumberProperty:mySetValue];
NSInteger myRetrievedValue = [myObject.myNumberProperty integerValue];
?
有两种情况我想知道答案:1)如果需要的值用于计算(它包含一个数量或将转换为货币的值)和 2)如果该值只是一个类型基本上只会与自身进行比较,不会用于任何计算。是否可以在一种情况下使用 numberWithInt 和 intValue 而不是另一种情况,两种情况下,还是必须在两种情况下都使用 numberWithInteger 和 integerValue?
此外,如果我之前将所有值存储为 [NSNumber numberWithInt:] 是否重要 - 我现在可以简单地更改存储/检索值的方式,还是需要保持一致性以免产生问题当前用户数据?
我对这在 32 位和 64 位 iOS 应用程序中的工作特别感兴趣。
另外 - 如果核心数据值是整数 32、整数 16、整数 64 等,这对您的答案有影响吗?