KCSPersistable с быстрой ошибкой
Я тщательно исследовал это. Услышав новость о Parse на днях, я возился с использованием Kinvey для моего BaaS. Я пытаюсь сохранить объект, но получил ошибку, связанную с 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 не будет компилироваться.
1 ответ
Проблема, которую вы увидели, заключалась в том, что NSObjects в 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
override func hostToKinveyPropertyMapping() -> [NSObject : AnyObject]! {
return [
"entityId" : KCSEntityKeyId, //the required _id field
"name" : "name",
"date" : "date",
"location" : "location",
"metadata" : KCSEntityKeyMetadata //optional _metadata field
]
}
}