ios - KCSPersistable 并出现 Swift 错误

标签 ios xcode swift kinvey mbaas

我对此进行了广泛的研究。前几天听到有关 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
             ]
      }

由于父类(super class),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 将无法编译。

最佳答案

您看到的问题是因为 Kinvey 中的 NSObjects 隐式实现了 KCSPersistable。

我们已更正我们的文档以反射(reflect)这一点。 请使用以下示例代替您的代码 -

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
        ]
    }

}

关于ios - KCSPersistable 并出现 Swift 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35104276/

相关文章:

iphone - 如何读取 Plist 数据到 UITableView

iOS - AudioUnit 应用程序的 Audio Session 类别

Xcode 9 模拟器删除框架

iOS - UITableViewCell 使文本加粗

ios - 无法在 tableviewcontroller 上获得半透明的导航栏。适用于 View Controller 和 TableView

ios - Xcode 8.0 架构 arm64 的 undefined symbol

ios - SmartSVN:如何从主干分支出工作副本

xcode - 如何在特定语言环境(例如英语)中调试Xcode应用程序?

ios - 将 TouchesMoved 中的最后位置与当前位置进行比较

swift - SwiftUI @State 的 UIKit 更新导致 "Modifying state during view update"