Я работаю над приложением 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
объектов, он просто печатает [ , , , , ]
Пожалуйста, покажите код, в котором вы создаете объекты. – zisoft
Я вижу то же самое с Xcode 6.1 (6A1052d). Я создал суть, чтобы продемонстрировать, что не имеет значения, как я получаю объекты: https://gist.github.com/bgrace/021f55a9f160685e2433 - Мне было бы интересно узнать, работает ли для печати файл NSManagedObject для кого-либо. – Brett
Я просто столкнулся с этой проблемой, пытаясь преобразовать массив подклассов NSManagedObject в строку для сохранения в отчете об ошибке. Сейчас я делаю это как обходной путь: вар StringArray = [String]() для подкласса arrayOfSubclass { stringArray.append (subclass.name) } Затем с помощью stringArray.description, чтобы получить присоединился строки. – jlichti