【发布时间】:2015-01-22 10:14:35
【问题描述】:
当创建NSManagedObject 的扩展助手以创建新的托管对象子类时,swift 提供了Self 类型来模仿instancetype,这很棒,但我似乎无法从AnyObject 进行类型转换。以下代码无法编译并出现错误 'AnyObject' is not convertible to 'Self'
帮助?
extension NSManagedObject
{
class func createInContext(context:NSManagedObjectContext) -> Self {
var classname = className()
var object: AnyObject = NSEntityDescription.insertNewObjectForEntityForName(classname, inManagedObjectContext: context)
return object
}
class func className() -> String {
let classString = NSStringFromClass(self)
//Remove Swift module name
let range = classString.rangeOfString(".", options: NSStringCompareOptions.CaseInsensitiveSearch, range: Range<String.Index>(start:classString.startIndex, end: classString.endIndex), locale: nil)
return classString.substringFromIndex(range!.endIndex)
}
}
【问题讨论】:
标签: swift core-data nsmanagedobject