【问题标题】:Parse.com subclassing in Swift 2Swift 2 中的 Parse.com 子类化
【发布时间】:2015-10-11 20:13:55
【问题描述】:

我的问题是关于似乎在 Swift 2 中不起作用的桥头。我将 Parse.com iOS 指南中的这段代码复制到 xCode 中,看看它是否可以工作。

#import <Parse/PFObject+Subclass.h>

class Armor : PFObject, PFSubclassing {
    override class func initialize() {
        struct Static {
            static var onceToken : dispatch_once_t = 0;
        }
        dispatch_once(&Static.onceToken) {
            self.registerSubclass()
        }
    }

    static func parseClassName() -> String {
        return "Armor"
    }
}

这不起作用。我在#import &lt;Parse/PFObject+Subclass.h&gt; 行收到错误Consecutive statements of a line must be separated by ';'。所以,我的问题是我将如何在 Parse.com 中使用 Swift 2 进行子类化。我浏览了互联网并没有找到任何东西。我认为 Swift 导入桥头的方式可能发生了变化,但我完全不确定,因为我以前从未使用过桥头。所以,我可能会做一些愚蠢的事情。无论如何,非常感谢任何帮助。谢谢。

【问题讨论】:

    标签: ios objective-c swift parse-platform


    【解决方案1】:

    首先确保您拥有最新的 Parse SDK。如果您有最新的 SDK,您可以像这样创建 PFObject 子类

    class Armor: PFObject, PFSubclassing {
    
    static func parseClassName() -> String {
          return "Armor"
       }
    }
    

    当您创建自定义子类时,您应该像这样在 AppDelegate 中将您的子类注册到 Parse SDK;

    func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
    
            //Registering SubClasses
            Armor.registerSubclass()
    
            // Initialize Parse.
            Parse.enableLocalDatastore()
            Parse.setApplicationId("Your API Key", clientKey: "Your Client Key")
    
            return true
        }
    

    【讨论】:

      【解决方案2】:

      在 SDK 版本 1.14.0 之后,您应该不需要注册子类。

      查看来自https://github.com/ParsePlatform/Parse-SDK-iOS-OSX/releases/tag/1.14.0的更新日志。

      #1023 和 1035 中也讨论了这个问题,其中删除了对 registerSubclass() 的调用已解决 PFUser 中的循环问题。

      【讨论】:

        猜你喜欢
        • 2016-05-18
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-12-14
        • 1970-01-01
        相关资源
        最近更新 更多