我想将 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/