ユーザーが描画したときにパスが保存され、ユーザーがアプリを閉じて再度開いたときに読み込まれる描画アプリがあります。
オブジェクト(ブラシの色)をNSMutableArrayに追加し、次のように保存します。
// Adding object to NSMutableArray (this is in touchesMoved)
NSData *colorData = [NSKeyedArchiver archivedDataWithRootObject:self.brushColor];
[self.brushColours addObject:colorData];
// Saving array (this is in touchesEnded)
[defaults setObject:self.brushColours forKey:[NSString stringWithFormat:@"%@BrushColours%@", currentid, pageno]];
[defaults synchronize];
それはすべて問題なくダンディですが、パスをロードして色を設定しようとすると、次のようになります。
なぜこうなった?
編集:私はこのように色をロードし直しています(これは各パスのforループにあります):
NSMutableArray *arr3 = [defaults objectForKey:[NSString stringWithFormat:@"%@BrushColours%@", currentid, pageno]];
self.brushColor = [NSKeyedUnarchiver unarchiveObjectWithData:[arr3 objectAtIndex:index]];