我认为将包含info的基本数据对象定义为CKRecord可能是个好主意,因为我显然将使用CloudKit。但是,我不知道如何制作一个CKRecord类。特别是,我不知道如何定义它的"recordType“。
我的具体问题是:为什么"self.recordType = "myRecordType“这一行会导致错误"Can not assign to recordType in self"?这个CKRecord类中的每个类都是相同类型的,那么我该如何给它分配一个recordType呢?
我的第二个问题,如果你有观察到的:你有没有看到在CloudKit中直接在查询中使用这个类的对象(读写)的其他问题,等等?如果你在什么地方看到过类似的示例代码,请让我知道。Thx
class testCKRecordClass: CKRecord {
override init!(recordType: String!) {
self.recordType = "myRecordType"
}
required init(coder aDecoder: NSCoder) {
fatalError("init(coder:) has not been implemented")
}
var title: NSString {
get {
return self.objectForKey("title") as NSString
}
set {
self.setObject(newValue, forKey: "title")
}
}
var location: CLLocation? {
get {
return self.objectForKey("location") as? CLLocation
}
set {
self.setObject(newValue, forKey: "location")
}
}发布于 2015-01-26 15:30:01
CKRecord是CloudKit方法将返回的内容。它不能被解析成你的testCKRecordClass (很简单)。因此,您只能使用它来创建将其写入CloudKit的CKRecord。
recordType只能由CKRecord的构造函数发起。如果您调用super.init(recordType),也许它可以工作
看起来您只想要一种尽可能简单地使用CloudKit的方法。如果是这样的话,我可以建议你也来看看https://github.com/evermeer/EVCloudKitDao,它是一个方便的CloudKit库,它将使用反射来解析CKRecord。
https://stackoverflow.com/questions/28142731
复制相似问题