Parse.com在Swift 2中进行子类化

时间:2015-10-11 20:13:55

标签: ios objective-c swift parse-platform

我的问题是关于一个在Swift 2中似乎不起作用的桥接头。我将这个代码strait从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 <Parse/PFObject+Subclass.h>行收到错误,错误为Consecutive statements of a line must be separated by ';'。所以,我的问题是如何用Swift 2在Parse.com中进行子类化。我已经浏览了互联网并且没有找到任何东西。我认为Swift导入桥接头的方式可能有所改变,但我完全不确定,因为我之前从未使用过桥接头。所以,我可以做一些愚蠢的事情。无论如何,非常感谢任何帮助。感谢。

2 个答案:

答案 0 :(得分:4)

首先确保您拥有最新的 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
    }

答案 1 :(得分:0)

发布SDK版本1.14.0后,您不需要注册子类。

请参阅https://github.com/ParsePlatform/Parse-SDK-iOS-OSX/releases/tag/1.14.0的更改日志。

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