2014-10-28 13 views
9

Pracuję nad aplikacją Swift z Core Data. Stworzyłem plik *.xcdatamodeld i utworzyłem NSManagedObject Subclass (Editor -> Create NSManagedObject Subclass...).Drukowanie podrzędnego obiektu Core Data obiektu NSManagedObject do konsoli zwraca pustą linię w Swift

Wszystko działa poprawnie z wyjątkiem gdy próbuję println to instancja obiektu tej klasy (pozwala wywołać Person) Urządzenie drukuje puste konsoli lub po prostu Optional() jeśli nie rozpakowany.

Próbowałem dodać DebugPrintable lub Printable przez rozszerzenie klasy bez powodzenia.

Czy jest to znane ograniczenie obiektów CoreData? czego mi brakuje?

Dodawanie kodu dla jasności:

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

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

} 

Moje rozszerzenie:

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

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

drukuje konsole pusta linia, lub w przypadku tablicy Person przedmiotów, po prostu drukuje [ , , , , ]

+0

Proszę pokazać kod, w którym należy wykonać instancję obiektów. – zisoft

+0

Widzę to samo z Xcode 6.1 (6A1052d). Stworzyłem istotę, aby pokazać, że nie ma znaczenia, w jaki sposób otrzymam obiekty: https://gist.github.com/bgrace/021f55a9f160685e2433 - Byłbym zainteresowany, aby wiedzieć, czy Printable na NSManagedObject pracuje dla każdego. – Brett

+0

Po prostu wpadłem na ten problem, próbując przekonwertować tablicę podklas NSManagedObject na ciąg znaków, aby zapisać go w raporcie o błędzie. Na razie robię to jako obejście: var stringArray = [String]() do podklasy w arrayOfSubclass { stringArray.append (subclass.name) } Następnie za pomocą stringArray.description uzyskać przystąpiły smyczki. – jlichti

Odpowiedz

8

Możesz użyć tego:

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

Z jakiegoś powodu nie wyświetli się przy użyciu println, ale NSLog działa dobrze.

Powiązane problemy