2014-10-28 10 views
9

Tôi đang làm việc trên ứng dụng Swift với Dữ liệu lõi. Tôi đã tạo tệp *.xcdatamodeld và tạo một NSManagedObject Subclass (Editor -> Create NSManagedObject Subclass...).In NSManagedObject đối tượng Dữ liệu lõi được phân lớp thành bảng điều khiển trả về dòng trống trong Swift

Mọi thứ hoạt động tốt trừ khi tôi cố gắng println đối tượng đã được tạo đối tượng của lớp đó (cho phép gọi là Person) bảng điều khiển in trống hoặc chỉ đơn giản là Optional() nếu chưa được mở.

Tôi đã thử thêm DebugPrintable hoặc Printable qua tiện ích mở rộng lớp học mà không thành công.

Đây có phải là giới hạn đã biết của các đối tượng CoreData không? Tôi đang thiếu gì?

Thêm mã cho rõ ràng:

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

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

} 

phần mở rộng của tôi:

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

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

điều khiển in trống dòng, hoặc trong trường hợp của một mảng của Person đối tượng, nó chỉ đơn giản in [ , , , , ]

+0

Vui lòng hiển thị mã nơi bạn khởi tạo đối tượng. – zisoft

+0

Tôi thấy điều tương tự với Xcode 6.1 (6A1052d). Tôi đã tạo ra một ý chính để chứng minh rằng nó không quan trọng như thế nào tôi nhận được các đối tượng: https://gist.github.com/bgrace/021f55a9f160685e2433 - Tôi sẽ quan tâm để biết nếu có thể in trên một NSManagedObject đang làm việc cho bất cứ ai. – Brett

+0

Tôi vừa gặp sự cố này cũng như cố gắng chuyển đổi một mảng các lớp con NSManagedObject thành chuỗi để lưu trong báo cáo lỗi. Để bây giờ tôi đang làm điều này như một cách giải quyết: var stringArray = [Chuỗi]() cho lớp con trong arrayOfSubclass { stringArray.append (subclass.name) } Sau đó, sử dụng stringArray.description để có được tham gia dây. – jlichti

Trả lời

8

Bạn có thể sử dụng điều này:

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

Vì một số lý do, nó sẽ không xuất ra bằng cách sử dụng println nhưng NSLog chỉ hoạt động tốt.

Các vấn đề liên quan