NSObject サブクラスに currentSongsList という名前の NSMutableOrderedSet プロパティがあります。NSManagedObject サブクラスに currentSongsList という名前の NSData プロパティがあります。
アプリを終了して再起動した後に取得できるように、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
他に 4 つの NSMutableOrderedSet プロパティがあり、そのカウント値はすべて異なります。ただし、CurrentSongsInfoArchive オブジェクトにアーカイブされると、その長さは常に 135 になります。
NSMutableOrderedSet は NSSecureCoding に準拠していますが、NSMutableOrderedSet を NSManagedObject サブクラスの属性に保存することは可能ですか?