Можно ли сохранить NSMutableOrderedSet в атрибут NSData в подклассе NSManagedObject?

У меня есть свойство NSMutableOrderedSet с именем currentSongsList в подклассе NSObject. У меня есть свойство NSData с именем currentSongsList в подклассе NSManagedObject.

Я хочу заархивировать свойство NSMutableOrderedSet в базу данных, чтобы его можно было получить после завершения и перезапуска моего приложения.

В CurrentSongsInfo.h -

@interface CurrentSongsInfo : NSObject

@property (nonatomic, strong) NSMutableOrderedSet *currentSongsList;

В CurrentSongsInfoArchive.h -

@interface CurrentSongsInfoArchive : NSManagedObject

@property (nonatomic, retain) NSData * currentSongsList;

В CurrentSongsInfoArchive.m -

DatabaseInterface *databaseInterfacePtr = [[DatabaseInterface alloc] init];
// Not showing code for databaseInterfacePtr:newManagedObjectOfType, but it has been working for over a year for many entity types
CurrentSongsInfoArchive *currentSongsInfoArchive = (CurrentSongsInfoArchive *)[databaseInterfacePtr newManagedObjectOfType:@"CurrentSongsInfoArchive"];

NSData *currentSongsList = [NSKeyedArchiver archivedDataWithRootObject:currentSongsInfoArchive.currentSongsList];
currentSongsInfoArchive.currentSongsList = currentSongsList;

Когда приведенный выше код из CurrentSongsInfoArchive.m выполняется, я вижу следующий вывод:

currentSongsList.count = 540

2014-09-19 04: 30: 57.219 MusicByCarlCoreData [2863: 1091413] currentSongsInfoArchive.currentSongsList.length = 135

У меня есть четыре других свойства NSMutableOrderedSet, чьи значения счетчика все разные. Но когда они архивируются в объект CurrentSongsInfoArchive, их длина всегда равна 135.

NSMutableOrderedSet соответствует NSSecureCoding, но возможно ли даже сохранить NSMutableOrderedSet в атрибут в подклассе NSManagedObject?

1 ответ

Решение

Спасибо, @geo и @mitrenegade, за ваши предложения. К сожалению, это была глупая ошибка в моем коде архивации, которая вызвала проблему. Поскольку архивирование было плохим, разархивировать было нечего.

Итак, окончательный ответ... Да, можно сохранить NSMutableOrderedSet в атрибут NSData в подклассе NSManagedObject.

Другие вопросы по тегам