2015-10-20 72 views
1

我想创建自定义PFObject类,但它给了我一个非常令人困惑的错误“物业self.photo在super.init调用未初始化”子PFObject和覆盖初始化

这里是我的自定义类的代码:

import Foundation 
import Parse 

class Wish: PFObject, PFSubclassing { 
var id: String? 
var name: String? 
var descriptionWish: String? 
var photo: UIImage 
var photoThumbnail: UIImage 
var amount: Double? 
var amountDonated: Int? 

static func parseClassName() -> String { 
    return "Wish" 
} 

override init() { 
    super.init() 

} 



convenience init(id: String?, name: String?, descriptionWish: String?, photo: UIImage, photoThumbnail: UIImage, amount: Double?, amountDonated: Int?) { 
    self.init() 
    self.id = id 
    self.name = name 
    self.descriptionWish = descriptionWish 
    self.photo = photo 
    self.photoThumbnail = photoThumbnail 
    self.amount = amount 
    self.amountDonated = amountDonated 

} 
} 

任何想法如何使这个类的自定义初始值设定项? 我想打电话给我的愿望类是这样的:

Wish(id: "123", name: "xxx", descriptionWish: "Lorem ipsum", photo: photoImage, photoThumbnail: photoImageThumbnail, amount: 22.20, amountDonated: 10) 

和投PFObject这样

let wish = myPfObject as Wish 

任何帮助表示赞赏!

回答

5

尝试将您的子类更新到以下内容。注意NSManaged关键字已添加到您的Wish子类的解析性能和消除super.init()

你可能也想看看用解析提供的PFFile性质更换UIImage性能。您可以使用ParseUI框架中包含的PFImageView轻松存储和加载图像。

import Foundation 
import Parse 

class Wish: PFObject, PFSubclassing { 

    // MARK: - Parse Core Wish Properties 

    @NSManaged var id: String? 
    @NSManaged var name: String? 
    @NSManaged var descriptionWish: String? 
    @NSManaged var photo: UIImage 
    @NSManaged var photoThumbnail: UIImage 
    @NSManaged var amount: Double? 
    @NSManaged var amountDonated: Int? 

    // MARK: - Lifecycle 

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

    static func parseClassName() -> String { 
     return "Wish" 
    }  

    convenience init(id: String?, name: String?, descriptionWish: String?, photo: UIImage, photoThumbnail: UIImage, amount: Double?, amountDonated: Int?) { 
     self.init() 
     self.id = id 
     self.name = name 
     self.descriptionWish = descriptionWish 
     self.photo = photo 
     self.photoThumbnail = photoThumbnail 
     self.amount = amount 
     self.amountDonated = amountDonated 
    } 
} 
+0

谢谢,很好的回答! –