我正在尝试为PFObject(Subclassing)创建一个自定义类,这似乎工作正常,但是当我尝试转换/使用自定义类对象时,作为常规PFObject,它会搞砸。这就是我想要做的。
首先,我出于测试原因创建了名为 NewPFObject
的自定义类。
注意:我在设置应用ID之前在AppDelegate中调用 NewPFObject.registerSubclass()
。
class NewPFObject: PFObject, PFSubclassing {
static func parseClassName() -> String {
return "NewPFObject"
}
override init(className:String) {
super.init(className: className)
}
}
然后我有这个方法用它来使异步调用更容易和流畅:
func GetAsyncObjects(query:STARCQuery, doNext: (dataObjects:[NewPFObject]) -> ()) {
query.findObjectsInBackgroundWithBlock { (newObjects:[PFObject]?, error:NSError?) -> Void in
if error == nil {
doNext(dataObjects: newObjects as! [NewPFObject])
}
}
}
最后,我有一个用例,错误发生在那里。
let query:PFQuery = PFQuery.init(className: "MyCustomClassInParse")
GetAsyncObjects(query) { (dataObjects) -> () in
if(dataObjects.count > 0) {
for customObject in dataObjects {
//Do something with customObject data
}
}
}
用例的错误与标题相同:
致命错误: NSArray元素未能与Swift数组元素类型匹配
它发生在代码的最后一块,就是我在dataObjects
循环中使用for
数组的行。
当尝试多次强制转换时,XCode会说这样做是多余的,并且在实际运行代码时没有什么区别。同样的错误。
我真的尝试过所有内容,而且关于PFSubclassing和Stackoverflow上的这个错误的每一篇文章似乎都无法找到解决方案,所以我希望有人愿意帮助我!
谢谢!