CoreData提供整数16,整数32和整数64存储,但不支持任何符号限定符。您可以将一个无符号整型(32位)存储为一个有符号长整型(64位),并确保整个范围内的值保留,但无符号长整型似乎需要一个128位有符号整数来存储,当然这不是' t由CoreData支持。有什么方法可以在coreData中存储unsigned long?有没有办法在核心数据中存储unsigned long?
回答
[上一页评论晋升回答]
听起来就像是位模式这是对你很重要,而不是整数值本身。你可以将它作为一个签名来存储 - 只需将它转换为C签署的< - >无符号强制转换不会强制数学正确性并只保留这些位。重新使用它。
后续问题:
通常是在(Obj-)C(++),则可以无符号整数值存储到与等效符号整型变量,并且反之亦然。 C使用2的补码整数从符号 - >无符号定义等价于一个位复制,并且这两个类型的大小相同。换句话说,unsigned - > signed,是“实现定义” - 在实践中通常是意味着一个位拷贝。锵& GCC使用位副本两种,但如果你想绝对肯定,你可以使用一个union
:
unsigned long r;
long l;
r = (unsigned long)l; // will always work (cast optional)
// following is l = (long)r (cast optional) without "implementation defined" risk
{ union { long sValue; unsigned long uValue; } tmp; tmp.uValue = r; l = tmp.sValue;}
但严重的是,我怀疑有人会! (注意:Clang至少会将其编译为直接分配(位拷贝)。)
你总是可以将[de]序列化为一个字符串。它并不是特别干净,但只要您可以将其解析为无符号长整型,它就可以存储它。
unsigned long
不是128位(还)。
(或者你有没有128位CPU?)
在Mac上,根据您的CPU架构,它可能是32位或64位。
见有:
NSLog(@"%u", sizeof(unsigned long));
所以基本上一个unsigned long
将是兼容的意志Integer32
或Integer64
。
在这里稍微误解了这个问题,OP没有说unsigned long是128位,但是你看起来需要一个128位有符号值来存储所有可表示为无符号long的值 - 从技术上讲,你只需要一个65位有符号但是由于某些原因,他们不常见;-)。 'NSNumber'将一个无符号长整型存储为有符号的128位值(因为它在内部将所有整数存储为有符号)。 – CRD
如果你真的需要 64位无符号的全精度,你可以把它变形(查看文档有关存储非标准持久属性)。 CoreData让你存储任何方式的东西。但是你可能不需要完整的64位精度......?!?
- 1. 核心数据没有正确存储
- 2. 使用核心数据存储无符号long long
- 3. 有没有办法用Xcode打开(任意)核心转储?
- 4. 有没有办法通过核心数据可视化存储在iPhone应用程序中的记录?
- 5. 有没有办法在meetup上存储元数据?
- 6. 在C中,'long unsigned'与'unsigned long'一样有效吗?
- 7. 有没有办法清除核心数据中某些NSMangedObjects的-changedValues?
- 8. 有没有办法使用NSPredicate发出NSDeleteRequest与核心数据中的NSFetchRequest?
- 9. 有没有办法确保一个数组变量(unsigned int *)将在内存中?
- 10. 有没有办法保存HSQLDB数据?
- 11. 在核心数据中存储UUID
- 12. 在核心数据中存储NSDate(swift)
- 13. 在核心数据中存储MKRoute
- 14. 在核心数据中存储ABRecordRef
- 15. 在核心数据中存储NSInteger
- 16. 将核心数据存储在NSOperation中
- 17. 错误:没有匹配函数调用'min(long unsigned int&,unsigned int&)'
- 18. 存储NSAttributedString核心数据
- 19. unsigned long和unsigned long long有什么区别?
- 20. 在核心数据中存储带有系统时区的NSDate
- 21. 如何将unsigned long long(uint64_t)值存储在MongoDB文档中?
- 22. 有没有办法将XML.appendChild函数存储在变量中?
- 23. 有没有办法在Oz中存储函数/过程调用?
- 24. 有没有办法在Hadoop中有数据块的辅助存储或备份?
- 25. 有没有办法建立临时数据存储?
- 26. 有没有办法将自定义SQL添加(核心数据)提取?
- 27. 有没有办法更改核心数据属性的默认值
- 28. 在核心数据数据模型中有效地存储相同的数据
- 29. 如何在没有时间的核心数据中存储日期
- 30. 有没有办法知道核心数据中的2个实体之间是否存在关系?
不要转换为字符串。这非常昂贵。 –
就像我说过的那样,它不是干净的,但它会_work_,即使有可能_many_更好的方法。一般来说,字符串是一个功能“最低公分母”,许多人忘记了它们是UNIX进程间通信的全部基础。 – cdeszaq
然后人们开始抱怨CoreData速度很慢。 –