この配列はサーバーからコンテンツを取得し、アプリを開くたびにそのデータをリロードしたくないため、複数の NSMutableArray を保存してロードしたいと考えています。最初にパスを宣言しました:
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSString *firstPath = [documentsDirectory stringByAppendingPathComponent:@"first"];
NSString *secondPath = [documentsDirectory stringByAppendingPathComponent:@"second"];
NSString *thirdPath = [documentsDirectory stringByAppendingPathComponent:@"third"];
NSString *fourthPath = [documentsDirectory stringByAppendingPathComponent:@"fourth"];
次に、NSMutableArrays を保存します。
[firstArray writeToFile:firstPath atomically:YES];
[secondArray writeToFile:secondPath atomically:YES];
[thirdArray writeToFile:thirdPath atomically:YES];
[fourthArray writeToFile: fourthPath atomically:YES];
次に、これらのファイルを他の NSMutableArrays で開きます。
firstArrayget = [NSMutableArray arrayWithContentsOfFile:firstPath];
secondArrayget = [NSMutableArray arrayWithContentsOfFile:secondPath];
thirdArrayget = [NSMutableArray arrayWithContentsOfFile:thirdPath];
fourthArrayget = [NSMutableArray arrayWithContentsOfFile:fourthPath];
次に、これらの配列 (...Arrayget、つまり firstArrayget) を TableView にロードしようとしました。
データは TableView に読み込まれますが、下にスクロールするとアプリがエラーでクラッシュします。
*** -[CFArray objectAtIndex:]: message sent to deallocated instance 0x930fc80
およびファイル内:
Thread 1:EXC_BREAKPOINT(code=EXC_1386_BPT,subcode=0x0)
しかし、TableView が (...Array、つまり firstArray) からデータをロードすると言うと、サーバーからダウンロードされたデータは保存されません。