是否可以将NSMutableOrderedSet保存到NSManagedObject子类中的NSData属性?

时间:2014-09-19 12:08:17

标签: ios core-data nskeyedarchiver nsmutableorderedset

我在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子类中的属性吗?

1 个答案:

答案 0 :(得分:0)

感谢@geo和@mitrenegade,感谢您的建议。可悲的是,我的归档代码中的一个愚蠢的错误导致了这个问题。由于存档很糟糕,没有任何东西可以解开。

所以,最后的答案...... 可以将NSMutableOrderedSet保存到NSManagedObject子类中的NSData属性。