gpt4 book ai didi

ios - 无法初始化 PFObject 子类

转载 作者:搜寻专家 更新时间:2023-11-01 06:23:17 24 4
gpt4 key购买 nike

升级到 Xcode 6.3 6D570(和 Swift 1.2)后,子类对象的 init 无法编译。假设我有一个名为 Armor 的类,它继承自 PFObject,PFSubclassing(正如 Parse 文档所说)。

当我尝试创建一个实例时,例如 var armor = Armor(),我得到以下编译错误:

Missing argument for parameter 'className' in call

然后我在 Parse 文档中读到我应该使用“object”类方法来初始化一个子类对象。所以我尝试这样初始化:var armor = Armor.object()

但是我得到以下编译错误:

'object()' is unavailable: use object construction 'PFObject()'

我使用的是 Parse SDK 版本 1.7.1。

我还重写了 parseClassName 方法,如下所示:

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

在设置 Parse 之前,我在初始化方法和应用程序委托(delegate)中注册了子类:

override class func initialize() {
var onceToken : dispatch_once_t = 0;
dispatch_once(&onceToken) {
self.registerSubclass()
}
}

我应该如何正确地初始化子类对象?

最佳答案

============================================= ==========================

这已在 1.7.3 PARSE SDK 中修复您可以在这里下载新版本: https://parse.com/docs/downloads

============================================= ==========================

虽然文档对此并不清楚,但不再需要在 Swift 中使用 .object() 。如前所述here并在 Swift 代码片段中找到 here

现在,这很奇怪,但要使Armor() 正常工作,您需要以某种方式在同一个文件中引用PFUser 类。也许它不一定是 PFUser 但我还没有深入研究它。

所以,这行不通

import UIKit
import Parse
import Bolts

@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate {

var window: UIWindow?
func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
Parse.setApplicationId("appID", clientKey: "clientKey")

let myArmor = Armor()

return true
}
}

但这会

import UIKit
import Parse
import Bolts

private let fix = PFUser.hash() // here's the weird trick

@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate {

var window: UIWindow?
func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
Parse.setApplicationId("appID", clientKey: "clientKey")

let myArmor = Armor()

return true
}
}

希望这对您有所帮助,Parse 会尽快推出修复程序。

还有 reported as a bug

关于ios - 无法初始化 PFObject 子类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29582099/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com