2014-10-28 14 views
9

boş satırını döndürür Çekirdek Veriler ile bir Swift uygulamasında çalışıyorum. *.xcdatamodeld dosyamı oluşturdum ve NSManagedObject Subclass (Editor -> Create NSManagedObject Subclass...) oluşturdum.Baskı NSManagedObject alt sınıflandırma Çekirdek Veri nesnesini Console'a dönüştürmek için Swift

Her şey println o sınıfın örneği nesneyi çalıştığınızda dışında çalışıyor boş konsol baskılar ya da sadece Optional() Çizelgesi değilse (bunu Person arama sağlar).

Sınıf uzantısı yoluyla DebugPrintable veya Printable eklemeye başarılı olmadan devam ettim.

Bu, CoreData nesnelerinin bilinen bir sınırlaması mı? Neyi kaçırıyorum?

açıklık kodunu eklemek:

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

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

} 

Uzantımın:

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

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

Konsol baskılar boş çizgi veya Person nesneler dizisi durumunda, sadece [ , , , , ]

+0

Lütfen nesneleri başlattığınız kodu gösterin. – zisoft

+0

Aynı şeyi Xcode 6.1 (6A1052d) ile görüyorum. Nesneleri nasıl elde ettiğimin önemli olmadığını göstermek için bir giriş yaptım: https://gist.github.com/bgrace/021f55a9f160685e2433 - Bir NSManagedObject üzerinde yazdırılabilir olup olmadığını öğrenmek isterdim. – Brett

+0

NSManagedObject alt sınıflarının bir dizisini bir hata raporuna kaydetmek için bir dizeye dönüştürmeyi denedim. { stringArray.append (subclass.name) } Ardından almak için stringArray.description kullanılarak katıldı arrayOfSubclass içinde alt sınıf için [Dize]() var stringArray =: şimdi bir çözüm olarak yapıyorum için Teller. – jlichti

cevap

8

basar Bunu kullanabilirsiniz:

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

Bazı nedenlerle, println kullanılarak çıktılamaz ancak NSLog sadece iyi çalışıyor.

İlgili konular