2016-01-30 8 views
0

Я исследовал это широко. Услышав новости о Парсе на днях, я играл с Кинви для моего BaaS. Я пытаюсь сохранить объект, но я получил ошибку, связанную с KCSPersistable.KCSPsistist with Swift Error

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 не будет компилироваться.

ответ

0

Проблема, которую вы видели, была связана с тем, что 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 
     ] 
    } 

}