Wie kann ich Instanzen von Unterklassen verwalteter Objekte in einer NSManagedObject Swift-Erweiterung erstellen?
Beim Erstellen eines Erweiterungshilfsprogramms fürNSManagedObject
Um eine neue Unterklasse für verwaltete Objekte zu erstellen, stellt swift das @ bereiSelf
type to mimicinstancetype
das ist großartig, aber ich kann nicht scheinen von @ typecaAnyObject
. Der folgende Code kompiliert nicht mit error 'AnyObject' kann nicht in 'Self' konvertiert werden
Hilfe
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)
}
}