Ios 在tableView中使用子类PFObject:cellForRowAtIndexPath
我将Ios 在tableView中使用子类PFObject:cellForRowAtIndexPath,ios,swift,parse-platform,Ios,Swift,Parse Platform,我将PFObject子类化如下: import UIKit import Parse class Post: PFObject, PFSubclassing { class func parseClassName() -> String { return "Post" } } 在AppDelegate应用程序中注册:didFinishLaunchingWithOptions: Post.registerSubclass() MyClass.regi
PFObject
子类化如下:
import UIKit
import Parse
class Post: PFObject, PFSubclassing {
class func parseClassName() -> String {
return "Post"
}
}
在AppDelegate应用程序中注册:didFinishLaunchingWithOptions:
Post.registerSubclass()
MyClass.registerSubclass()
我试图在tableView中使用该类:
override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath, object: PFObject?) -> PFTableViewCell? {
var cell = tableView.dequeueReusableCellWithIdentifier(postCellReuseIdentifier) as? PostCell
if cell == nil {
cell = PostCell(style: UITableViewCellStyle.Default, reuseIdentifier: postCellReuseIdentifier)
}
if let postCell = cell {
// assign post to the cell
postCell.post = object as! Post?
// setup delegate
postCell.delegate = self
return postCell
}
return nil
}
我需要将对象转换为Post,但不知道如何转换。我当前遇到以下错误:
无法将类型为“PFObject”(0x10c856ef8)的值强制转换为“MyApp.Post”(0x10c855670)
首先,您需要通过注册实例来确保正确地对
PFObject
进行子类化。同样,你所尝试的沮丧是不可能的。不能将基类的实例向下转换为派生类的实例,除非它只是一个存储为基类的派生实例。我已经做到了这一点。子类需要以下内容:
将此添加到桥接标头:
#import <Parse/PFObject+Subclass.h>
重要提示:确保在parseClassName()
中返回的类名与您在Parse.com上创建的类名完全匹配
在AppDelegate:application:didFinishLaunchingWithOptions中注册子类:
Post.registerSubclass()
MyClass.registerSubclass()
您现在应该可以向类强制转换PFObject。您是否使用了
registerSubclass
?是的,我已更新我的问题以显示注册。我已编辑我的问题以显示我正在使用的注册。如何在tableView中使用子类化对象:CellForRowatineXpath,它接受pfobject?可能是通过不子类化pfobject。通过保留可以通过构造函数初始化的PFObject属性,使Post类成为PFObject的包装器。然后您可以尝试执行类似于postCell.post=post(object)
的操作