我需要在int
中存储 CloudKit
,但似乎不支持Int 16,32,64位。你是如何对待这个问题的?我想为Core Data
记录的属性分配CloudKit
值。
recordS.setObject(recordValue, forKey:attributeName)
@property (nonatomic) int32_t recordValue; <- declaration in Core Data header
答案 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