我需要存儲int
在CloudKit
,但它似乎都不支持Int 16,32,64位。你如何看待這個問題?我想爲CloudKit
記錄的屬性分配Core Data
值。哪個int符合CKRecordValue?
recordS.setObject(recordValue, forKey:attributeName)
@property (nonatomic) int32_t recordValue; <- declaration in Core Data header
我需要存儲int
在CloudKit
,但它似乎都不支持Int 16,32,64位。你如何看待這個問題?我想爲CloudKit
記錄的屬性分配Core Data
值。哪個int符合CKRecordValue?
recordS.setObject(recordValue, forKey:attributeName)
@property (nonatomic) int32_t recordValue; <- declaration in Core Data header
int32_t
需要被包裹成NSNumber
NSNumber(int: recordValue)
您是否可以通過提供更多的上下文(和代碼)使這篇文章(和/或您的原文)更容易被更廣泛的受衆接受? – Werner 2014-12-01 17:09:25
從文檔:
以下類採用這個協議,並通過 CloudKit被支持:
的NSString
的NSNumber
的NSArray
的NSDate
NSData的
CKReference
CKAsset
CLLocation
所以你CKRecord只是不能直接通過從CloudKit的詮釋,它需要通過一個NSNumber的,像這樣:
record["my_integer_key"] = NSNumber(value: my_record_value)
相反,當你想讀一個CKRecord從CloudKit取,你不能認爲它是一個Int,因爲它真的是一個NSNumber:
my_integer_property = (record["my_integer_key"] as NSNumber).intValue
向我們顯示您的相關代碼。相關:http://stackoverflow.com/questions/26319350。另請參閱http://nshipster.com/swift-literal-convertible/ – 2014-12-01 15:37:07