2014-10-28 2 views
9

Я работаю над приложением Swift с основными данными. Я создал файл *.xcdatamodeld и создал NSManagedObject Subclass (Editor -> Create NSManagedObject Subclass...).Печать объекта NSManagedObject подкласса Core Data для консоли возвращает пустую строку в Swift

Все отлично работает, за исключением, когда я пытаюсь println проиллюстрированный объект этого класса (назовем его Person) консоль печатает пустой или просто Optional(), если не развернуто.

Я попытался добавить DebugPrintable или Printable через расширение класса без успеха.

Является ли это известным ограничением объектов CoreData? Что мне не хватает?

Добавление кода для ясности:

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

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

} 

Мой расширение:

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

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

Консольные печатает пустую строку, или в случае массива Person объектов, он просто печатает [ , , , , ]

+0

Пожалуйста, покажите код, в котором вы создаете объекты. – zisoft

+0

Я вижу то же самое с Xcode 6.1 (6A1052d). Я создал суть, чтобы продемонстрировать, что не имеет значения, как я получаю объекты: https://gist.github.com/bgrace/021f55a9f160685e2433 - Мне было бы интересно узнать, работает ли для печати файл NSManagedObject для кого-либо. – Brett

+0

Я просто столкнулся с этой проблемой, пытаясь преобразовать массив подклассов NSManagedObject в строку для сохранения в отчете об ошибке. Сейчас я делаю это как обходной путь: вар StringArray = [String]() для подкласса arrayOfSubclass { stringArray.append (subclass.name) } Затем с помощью stringArray.description, чтобы получить присоединился строки. – jlichti

ответ

8

Вы можете использовать это:

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

По какой-то причине он не будет выводиться с использованием println, но NSLog работает просто отлично.

Смежные вопросы