core-data - 我应该使用核心数据中的什么 NSNumber (整数 16、32、64)来保留 NSUInteger

标签 core-data nsuinteger

我想将 NSUInteger 保留到我的核心数据中,但我不知道应该使用哪种类型(整数 16、32、64)来满足所需的空间。

据我了解:

Integer 16 can have minimum value of -32,768 to 32,767
Integer 32 can have minimum value of -2,147,483,648 to 2,147,483,647
Integer 64 can have minimum value of -very large to very large

NSUInteger 是 unsigned long 的 def 类型,等于 unsigned int ( Types in objective-c on iPhone )

所以如果我使用 numberWithUnsignedInteger: 将 NSUInteger 转换为 NSNumber 并将其保存为 NSNumber(Integer 32) 我可以安全地检索数据,对吗?

最佳答案

真的需要NSUInteger的整个范围吗?在 iOS 上,这是一个无符号 32 位值,可能会变得非常大。它将找到一个有符号的 64 位。

但是您可能并不需要那么高的精度。 uint32_t 的最大值为 UINT32_MAX,即 4,294,967,295(40 亿)。如果每秒增加一次,则需要超过 136 年才能达到该值。到那时你的用户的 iPhone 就不会出现了...:)

关于core-data - 我应该使用核心数据中的什么 NSNumber (整数 16、32、64)来保留 NSUInteger,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42499347/

相关文章:

iphone - 管理 iPhone 设备上的大型数据库 : simple sqlite3 coding or CoreData?

ios - NSUInteger 中的错误值。为什么?

objective-c - 我可以使用带有 NSUInteger 类型参数的 NSCoder::encodeInteger:forKey: 和 decodeIntegerForKey: 方法吗?

ios - 为什么在 "numberOfSectionInTableView:"中使用 NSInteger 而不是 NSUInteger?

iphone - 预取是否应该返回任何错误?

objective-c - 当 Core Data 对象被删除并且仍然有对其的引用时,会发生什么情况?

ios - RestKit .20 RKRequestDescriptor postObject - (400-499) 中的预期状态代码,得到 200

ios - 根据实体类对NSFetchRequest进行排序

objective-c - 使用多个 NSUInteger 枚举作为方法的参数