2009-07-09 166 views
20

我想添加一個NSMutableArray的NSStrings到我的核心數據模型中的一個實體。問題是這不是Core Data中的受支持類型。保存一個NSMutableArray到核心數據

我試着做一個可變形的屬性,但問題是我看不到將NSMutableArray轉換爲NSData,然後從NSData轉回到NSMutableArray的方法。有沒有人有關於如何解決這個問題的想法?

(我知道我可以將數組歸檔,但我不想這樣做,我希望它可以出現在我的模型中)。

回答

32

您可以在建模對象中擁有二進制數據屬性,將數組存檔爲數據,然後將其傳遞給對象。

但我認爲更好的方法是有一個多對多的關係,而不是直接使用數組。

****編輯:下面是如何歸檔數組的NSData,以便它可以在你的管理對象***使用

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

基本上,你有符合NSCoding協議的任何類可以用這種方式歸檔。 NSArray/NSMutableArray已經符合它。他們告訴他們所有的目標要歸檔,所以他們也必須遵守。所有這些對象的成員都必須符合等等。它就像一棵樹。

由於你的數組符合,並且它是一個NSString數組(也符合),那麼你就是金。

+1

但是在這裏我們有一個簡單的字符串數組 - 你是否必須將每個字符串包裝在一個託管對象中,或者是否有任何一種NSString的NSManagedObject包裝器可用? – 2009-07-09 17:53:38