Вывод, который вы видите, получен из description
метода класса NSManagedObject.Это просто удобочитаемый вывод, предназначенный для облегченных целей отладки.Вы не должны использовать его для анализа или хранения данных.
Вы не видите никаких подробностей о данных в дампе описания, потому что управляемые объекты были выбраны как "ошибки", что означает, что они являются просто призраком объектов и не содержат реальных данных.Для немедленной выборки полноценных объектов вы должны задать запрос на выборку следующим образом:
[request setReturnsObjectsAsFaults:NO];
... затем, когда вы зарегистрируете объекты, вы увидите их данные и связи.
Чтобы фактически использовать данные в атрибутах, необходимо запросить атрибуты напрямую, используя один из методов значений, например valueForKey:@"attributeName"
.
Редактировать:
После редактированияВаш вопрос, я думаю, мне нужно уточнить.
Вы думаете о Базовых Данных все неправильно.Базовые данные не являются базой данных.У него нет полей.Возврат запроса на выборку не является таблицей.
Элементы реляционной базы данных в Базовых данных являются совершенно необязательными и скрытыми.Вместо этого Core Data - это менеджер графов объектов, который поддерживает целостность отношений между объектами.Данные хранятся в объектах, и при извлечении из постоянного хранилища вы получаете объект, а не поле, столбец или строку.
В этом случае выборка возвращает универсальный NSManagedObject, который настроен для представления сущности Tabrss
в графе сущностей.Каждый экземпляр управляемого объекта представляет один логический объект Tabrss
.Чтобы получить любое значение из любого объекта Tabrss
, вы запрашиваете у управляемого объекта значение, связанное с именем атрибута объекта Tabrss
.
Предположим, ваша сущность Tabrss
имеет атрибут name
.Чтобы получить имя каждого Tabrss
в вашем извлечении, вы должны использовать:
int i;
for (i = 0; i < arrayItemQuantity; i++)
NSLog (@"Element %i = %@", i, [[stories objectAtIndex: i] valueForKey:@"name"]);
Или сделать его более явным:
NSManagedObject *aTabrss;
for (aTabrss in stories)
NSLog(@"aTabrss.name=%@",[aTabrss valueForKey:@"name"]);
Если вы создадите собственный подкласс NSManagedObject для *С сущностью 1035 * вы можете запросить атрибут напрямую, используя точечную запись:
TabrssSubclass *aTabrss;
for (aTabrss in stories)
NSLog(@"ATabrss.name=%@",aTabrss.name]);
Важно помнить, что вы имеете дело с полноценными объектами, а не с массивами, матрицами, таблицами или какой-либо другой тупой структурой данных.Вы получаете данные от каждого отдельного объекта, отправляя сообщение с запросом значения одного из его атрибутов.