【发布时间】:2014-10-21 00:12:55
【问题描述】:
在 Xcode 6.1 和 Swift 博客上关于 Failable Initializers 的博客文章中,Apple 已在一个可失败的初始化程序中分配给 self。
博客文章中的 Int (init(fromString:)) 示例在复制到我的项目并分配给 self 时编译良好,但在我自己的代码中使用自定义类尝试此操作会导致通常的错误“无法分配给方法中的“自我””。
extension Contact {
public convenience init?(context: NSManagedObjectContext = DataStore.managedObjectContext) {
if let userId = User.loggedInUserId(context) {
let contact = NSEntityDescription.insertNewObjectForEntityForName("Contact", inManagedObjectContext: context) as Contact
self = contact
} else {
return nil
}
}
}
(Contact 是 NSManagedObject 的子类)
失败的初始化器有什么我遗漏的吗?
【问题讨论】: