2017-04-12 21 views
0

私は2つのNSMutableArraysをプロジェクトに持っており、Core DataはNSMutableArrayをサポートしていないので、NSKeyedArchiverでコアデータに保存できるようにする必要があると言われました。 NSFetchResultsControllerを実装しました。どのようにNSMutableArrayをNSKeyedArchiverに保存し、それをCore Dataで使用するのですか?私は私の配列とNSKeyArchiverの下にいくつかのコードを掲載します。コアデータにNSKeyedArchiverを含むNSMutableArrayを保存することはできますか?

- (instancetype)init { 
    self = [super init]; 
    if (self) { 
    self.nameList = [NSMutableArray arrayWithObjects:@"1", 
                @"2", 
                @"3", 
                @"4", 
                @"5", 
                nil]; 


    self.descArray = [NSMutableArray arrayWithObjects:@"desc1", 
                 @"desc2", 
                 @"desc3", 
                 @"desc4", 
                 @"desc5", 
                 nil]; 
        } 
    return self; 
} 

// How arrays are archived 
NSData *titleData = [NSKeyedArchiver archivedDataWithRootObject: self.nameList]; 

.... //Not sure what to do with the archived data 

NSData *descData = [NSKeyedArchiver archivedDataWithRootObject: self.descArray]; 

.... 

アーカイブされているので、2つのアレイで何ができますか?後でどのように追加することができますか?

私のコアデータモデルはシンプルですが、 "データ"と呼ばれるエンティティで、 "タイトル"と "desc"という2つのタイプの文字列を持っています。 2つの属性は、配列の格納に使用されます。

このプロジェクトのご希望は、すでにセルを構成している既存データの上にユーザーが新しいオブジェクトをテーブルビューに追加できるようにすることです。これをCore Dataで行います。私はNSFetchResultControllerを認識していますが、これをまとめて問題なく動作させるためには、正しい方向に私を導く助けを歓迎します。

+0

'name'と' description'属性を持つCore Dataエンティティを持っていて、コアデータにこれらのオブジェクトの数を作成する必要があります。 – Paulw11

答えて

0

不変のデータをコアデータに保存できます。 Uは、あなたがNSKeyedArchiverによってできることの後に不変に変更可能で行くことができます。 NSUserDefaultsと同じこと。

+0

コードで例を挙げてください。 – jumpman007

+0

func getDataFromArray(arrayData:NSArray?) - > NSData { 戻り値NSKeyedArchiver.archivedDataWithRootObject(arrayData!) } – shiv

関連する問題