Parse支持抽象PFObjects吗?

时间:2014-11-20 09:54:11

标签: ios swift parse-platform

我的问题是,您是否可以拥有一个从PFObject继承的抽象类,然后进行子类化以创建其他类?

基本上这可能吗?

AbstractObject:PFObject
ObjectOne:AbstractObject
ObjectTwo:AbstractObject

我尝试实现它,但我遇到了这个错误:

  

子类的子类可能没有单独的+ parseClassName   定义...

因此,PFObjects的子类的子类是否不可能具有不同的Parse类名?

如果没有,解决方案或最佳做法是什么?

解决方案:(我让抽象类符合PFSubclassing,不要这样做:])

UPMListing

class UPMListing: PFObject  {

  var title = ""
...

UPMOtherListing

class UPMOtherListing: UPMListing, PFSubclassing {

  var category: String?

  override class func parseClassName() -> String! {
    return "UPMOtherListing"
  }

 override class func load() {
  self.registerSubclass()
  }
}

完全错误

  

由于未捕获的异常而终止应用   ' NSInternalInconsistencyException',原因:'子类的子类   可能没有单独的+ parseClassName定义。   UPMarketplace.UPMOtherListing应该从中继承+ parseClassName   UPMarketplace.UPMListing。

1 个答案:

答案 0 :(得分:0)

我认为问题是因为你正在注册一个子类:

override class func load() {
    self.registerSubclass()
}

从一个继承自另一个注册类的类。据我所知,这是不可能的。

因此,如果您使用单一继承模型,并且UPMListing是您的基类(伪抽象)类,我认为您应该通过从{load方法中删除UPMListing方法来解决问题如果您希望将该方法用于其他目的,请{1}}或其他self.registerSubclass()来电