我在 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
我还有其他四个 NSMutableOrderedSet 属性,它们的计数值都不同。但是当它们被归档到 CurrentSongsInfoArchive 对象时,它们的长度总是 135。
NSMutableOrderedSet 符合 NSSecureCoding,但是否可以将 NSMutableOrderedSet 保存到 NSManagedObject 子类中的属性中?