哪个int符合CKRecordValue?

时间:2014-12-01 15:34:12

标签: cloudkit

我需要在int中存储 CloudKit ,但似乎不支持Int 16,32,64位。你是如何对待这个问题的?我想为Core Data记录的属性分配CloudKit值。

recordS.setObject(recordValue, forKey:attributeName)

@property (nonatomic) int32_t recordValue; <- declaration in Core Data header

enter image description here

2 个答案:

答案 0 :(得分:2)

int32_t需要包含在NSNumber

NSNumber(int: recordValue)

答案 1 :(得分:1)

来自文档:

  

以下类采用此协议并受其支持   CloudKit:

     

的NSString

     

的NSNumber

     

的NSArray

     

NSDate

     

NSData的

     

CKReference

     

CKAsset

     

CLLocation

所以你的CKRecord不能直接从CloudKit传递一个Int,它需要像这样传递一个NSNumber:

record["my_integer_key"] = NSNumber(value: my_record_value)

相反,当你想要读取从CloudKit获取的CKRecord时,你不能认为它是一个从盒子里出来的Int,因为它真的是一个NSNumber:

my_integer_property = (record["my_integer_key"] as NSNumber).intValue