私はこれを広範囲に研究しました。先日Parseのニュースを聞いて、BaaSにKinveyをいじってみた。オブジェクトを保存しようとしていますが、KCSPersistable に関連するエラーを受け取りました。
class Event : NSObject{
var entityId: String? //Kinvey entity _id
var name: String?
var date: NSDate?
var location: String?
var metadata: KCSMetadata? //Kinvey metadata, optional
}
func hostToKinveyPropertyMapping() -> [NSObject : AnyObject]! {
return [
"entityId" : KCSEntityKeyId, //the required _id field
"name" : "name",
"date" : "date",
"location" : "location",
"metadata" : KCSEntityKeyMetadata //optional _metadata field
]
}
Swift は、スーパークラスのために NSObject に対して冗長と呼びます。KCSPersistable 宣言を削除すると、コードは正常にビルドされますが、次のエラーが表示されます。
'Object "<KinveyPractive.Event: 0x7fed18d484c0>" of type "KinveyPractive.Event" does not implement 'hostToKinveyPropertyMapping', a required 'KCSPersistable' method for saving the object to the backend'
問題のループに陥っています。KCSPersistable を削除すると、Xcode が要求します。しかし、そのままにしておくと、Xcode がコンパイルされません。