Подтвердить что ты не робот

Сохранение NSMutableArray для основных данных

Я хочу добавить NSMutableArray из NSStrings в одно из моих объектов в моей базовой модели данных. Проблема в том, что это не поддерживаемый тип в Core Data.

Я попытался сделать tranformable атрибут, но проблема в том, что я не вижу возможности превратить NSMutableArray в NSData, а затем перейти из NSData, обратно в NSMutableArray. Кто-нибудь имеет представление о том, как эта проблема может быть решена?

(Я знаю, что могу архивировать массив, но я не хочу этого делать, я хочу, чтобы он присутствовал в моей модели).

4b9b3361

Ответ 1

У вас может быть атрибут двоичных данных в вашем моделированном объекте, архивировать массив и данные и передать его объекту.

Но я думаю, что лучшим способом было бы иметь отношение to-many, а не использовать массив напрямую.

**** Редактирование: здесь, как архивировать массив в NSData, чтобы он мог использоваться в вашем управляемом объекте ***

NSData *arrayData = [NSKeyedArchiver archivedDataWithRootObject:[NSArray arrayWithObjects:@"1",@"2", nil]];

В принципе, любой класс, который у вас есть, который соответствует протоколу NSCoding, может быть архивирован таким образом. NSArray/NSMutableArray уже соответствуют ему. Они рассказывают всем своим объектам, чтобы они сами архивировали, поэтому они тоже должны соответствовать. И все члены этих объектов должны соответствовать и т.д. Это похоже на дерево.

Поскольку ваш массив соответствует, и он представляет собой массив NSString (который также соответствует), тогда вы являетесь золотым.