- iPod touch/iPhone ネイティブアプリ製作 ver.10
310 :名称未設定[]:2009/04/13(月) 13:58:08 ID:41V3XbH10 - 配列に辞書型のデータを入れて、配列ごとNSUserDefaultsに保存しようとしてるんだけど、
1回目はうまく行くんだけど、1回目に保存したものを削除してから、 もう1回同じデータを保存しようとするとエラーがでるんだわ。 -[NSUserDefaults setObject:forKey:]: Attempt to insert non-property value '( { id = qg1ckCkm8YI; owner = Blendtec; rate = "4.63"; time = "01:37"; } )' of class 'NSCFArray'. これって、どういうエラー内容か分かる人いる?
|
- iPod touch/iPhone ネイティブアプリ製作 ver.10
312 :名称未設定[]:2009/04/13(月) 14:34:57 ID:41V3XbH10 - >311
削除したのは、1回目に保存したNSMutableArrayの中のNSMutableDictionary1つだけ。 Array全体を消したわけぢゃなくて、Arrayの1要素を削除した。 どっかおかしいとこあった?
|
- iPod touch/iPhone ネイティブアプリ製作 ver.10
316 :名称未設定[]:2009/04/13(月) 18:40:34 ID:41V3XbH10 - >>310だけど、分かる人いないかな?
|
- iPod touch/iPhone ネイティブアプリ製作 ver.10
318 :名称未設定[]:2009/04/13(月) 19:20:31 ID:41V3XbH10 - >>317
お分かりになるのでしょうか? 教えていただけませんか?
|
- iPod touch/iPhone ネイティブアプリ製作 ver.10
323 :名称未設定[]:2009/04/13(月) 20:21:33 ID:41V3XbH10 - こんな感じです。
保存部分(引数:NSMutableDictionary dic) NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; NSMutableArray *tmpArr = [[NSMutableArray alloc] initWithArray: [defaults objectForKey: @"key"]]; [tmpArr addObject: dic]; [defaults setObject: tmpArr forKey: @"key"]; [defaults synchronize]; [tmpArr release]; 削除部分 NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; NSMutableArray *tmpArr = [[NSMutableArray alloc] init]; if ([defaults objectForKey: @"key"]) { NSUInteger i, count = [[defaults objectForKey: @"key"] count]; for (i = 0; i < count; i++) { if (![[[[defaults objectForKey: @"key"] objectAtIndex: i] objectForKey: @"id"] isEqualToString: id]) { [tmpArr addObject: [[defaults objectForKey: @"key"] objectAtIndex: i]]; } } } [defaults setObject: tmpArr forKey: @"key"]; [defaults synchronize]; [tmpArr release]; 保存→削除→保存(このとき先のエラーが出力。結果、UserDefaultsに保存されていない。)
|
- iPod touch/iPhone ネイティブアプリ製作 ver.10
324 :名称未設定[]:2009/04/13(月) 20:22:38 ID:41V3XbH10 - 追記:削除部分にはNSStringでidが引数できます。
|