【问题标题】:Which coder should I use to code a long property using NSCoder?我应该使用哪个编码器来使用 NSCoder 对长属性进行编码?
【发布时间】:2013-03-19 04:55:39
【问题描述】:

我有一个对象,我必须使用 encodewithcoder 进行编码,但它是一个“长”数字,我不确定是否必须将它编码为简单的 int、int32 或 int64。 Apple 的文档似乎对我没有用处,因为它从不指代“长”类型。

哪个编码器是合适的?

谢谢

【问题讨论】:

  • 假设不可能将您的属性更改为已知宽度的原语,如 int32_t 或类似的?
  • 这个属性是在我从客户(一家大企业)收到的文档中定义的。我真的不知道这个属性应该存储什么。

标签: ios objective-c nscoder


【解决方案1】:

对于 iOS,long 是 32 位的,与 int 相同。 long long 为您提供 64 位。

long someVar = 42l;
[someEncoder encodeInt32:someVar forKey:@"someKey"];

【讨论】:

  • 哇!。那太快了!谢谢。
  • 嗯,用encodeInt32 编码long 会给我带来精度损失警告——但在使用encodeInt64 时不会。
猜你喜欢
  • 1970-01-01
  • 2017-09-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-06-22
相关资源
最近更新 更多