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)
的操作