2014-10-28 2 views
9

Ich arbeite an einer Swift App mit Core Data. Ich habe meine *.xcdatamodeld Datei erstellt und eine NSManagedObject Subclass (Editor -> Create NSManagedObject Subclass...) erstellt.Drucken von NSManagedObject subclassed Core Data-Objekt zu Konsole gibt leere Zeile in Swift

Alles funktioniert gut, außer wenn ich versuche, eine instanzierte Objekt dieser Klasse zu println (lässt es Person nennen) druckt die Konsole leer oder einfach Optional() wenn nicht ausgepackt.

Ich habe versucht, DebugPrintable oder Printable über die Klassenerweiterung ohne Erfolg hinzuzufügen.

Ist dies eine bekannte Einschränkung von CoreData-Objekten? Was vermisse ich?

Hinzufügen von Code für Klarheit:

/// Person.swift (auto-generated by Xcode) 
class Person: NSManagedObject { 

    @NSManaged var firstname: String 
    @NSManaged var lastname: String 

} 

Meine Erweiterung:

/// Person+Helpers.swift 
extension Person : Printable, DebugPrintable { 
    override var description : String { 
     return "test" 
    } 

    override var debugDescription : String { 
     return "debug test" 
    } 
} 

Console druckt leere Zeile, oder im Falle einer Anordnung von Person Objekte, es gibt einfach [ , , , , ]

+0

Bitte zeigen Sie den Code, wo Sie die Objekte instanziieren. – zisoft

+0

Ich sehe das Gleiche mit Xcode 6.1 (6A1052d). Ich habe einen Kern erstellt, um zu demonstrieren, dass es egal ist, wie ich die Objekte bekomme: https://gist.github.com/bgrace/021f55a9f160685e2433 - Ich würde gerne wissen, ob Printable auf einem NSManagedObject für irgendjemanden funktioniert. – Brett

+0

Ich habe gerade in dieses Problem gerade auch versucht, ein Array von NSManagedObject-Unterklassen in eine Zeichenfolge zu konvertieren, in einem Fehlerbericht zu speichern. Vorerst dies als Behelfslösung mache ich: var string = [Zeichenfolge]() für Unterklasse in arrayOfSubclass { stringArray.append (subclass.name) } Dann stringArray.description mit dem verbunden zu bekommen Saiten. – jlichti

Antwort

8

Sie können dies verwenden:

NSLog("My managed object: %@", managedObject) 

Aus irgendeinem Grund wird es nicht mit println ausgeben, aber NSLog funktioniert gut.

Verwandte Themen