Основные данные с атрибутом NSData - PullRequest
1 голос
/ 18 августа 2011

Я работаю над приложением на базе Core Data для iOS, в котором я сохранил строки массива в coredata как NSData (двоичные данные). При получении данных, как я могу написать NSPredicate, который будет получать только результат со значением NSData, содержащим данную строку.

если атрибут name является строкой, тогда я могу написать предикат, как показано ниже.

NSString *inputName = @"bbb";
NSPredicate * predicate = [NSPredicate predicateWithFormat:@"name = %@",inputName];

мой вопрос
что будет предикатом, если name равно NSData, а это NSData из

NSArray *anArray = [NSArray arrayWithObjects:@"aaa",@"bbb",@"ccc",nil];
NSData *arrayData = [NSArchiver archivedDataWithRootObject:anArray];

arrayData хранится как атрибут name в Базовых данных.

Надеюсь, этой информации достаточно, чтобы понять мою проблему. Заранее спасибо.

Ответы [ 3 ]

1 голос
/ 14 сентября 2011

я нашел ответ .. преобразовал NSArray в NSSet и сохранил его в сущности

0 голосов
/ 18 августа 2011

Основываясь на ваших комментариях, я думаю, вам нужно пересмотреть свою схему.Если между супервизором и сотрудником существует отношение «один-много» (у многих сотрудников может быть один и тот же руководитель), вам следует создать сущность Employee и добавить к ней атрибут supervisorID.Затем вы можете запросить в таблице Employee что-то вроде: where supervisorID="123".

. Если вы не можете изменить схему, вы можете преобразовать NSData в NSString и сохранить ее в CoreData, используя -initWithData:encoding:.

.HTH,

Акшай

0 голосов
/ 18 августа 2011

Если я правильно понимаю ваш вопрос и последующие комментарии, и вы используете массив, хранящийся в качестве данных, для представления иерархических отношений, то вы явно не используете базовые данные, как это было задумано.

Вместо этого я рекомендую вам создатьотдельный объект, представляющий сотрудников и затем устанавливающий отношения между ними и руководителем?

Хотя это не характерно для iOS, это руководство по от Apple демонстрирует эту самую концепцию.

...