Objective-Cで、NSUserDefaltsで保存したNSMutableArrayの要素をInt型で取得できません。
エラーの内容はこちらなのですが、どうしてこのエラーが起きてしまうのかわからずにいます。
objective
1[NSConcreteMutableData objectAtIndexedSubscript:]: unrecognized selector sent to instance
初期化・読み込み・保存・読み込みの手順は、
①AppDelegateで初期化
objective
1if ([[[NSUserDefaults standardUserDefaults] objectForKey:@"star"] mutableCopy] == nil) { 2 3 NSMutableArray *starArray = [[NSMutableArray alloc]init]; 4 5 for(int i = 0;i < 152;i++){ 6 7 [starArray addObject:[NSNumber numberWithInt:0]]; 8 9 } 10 11 NSLog(@"%@",starArray); 12 13 [[NSUserDefaults standardUserDefaults] setObject:starArray forKey:@"star"]; 14 [[NSUserDefaults standardUserDefaults] synchronize]; 15 16 } 17
②aViewControllerで読み込み・保存
objective
1NSUserDefaults *ud = [NSUserDefaults standardUserDefaults]; 2 NSMutableArray *array = [ud arrayForKey:@"star"].mutableCopy; 3 int nowStageStar = [array[stageNumber] intValue]; 4 5 [array replaceObjectAtIndex:stageNumber withObject:[NSNumber numberWithInt:score]]; 6 7 NSData *data2 = [NSKeyedArchiver archivedDataWithRootObject:array]; 8 [ud setObject:data2 forKey:@"star"]; 9 [ud synchronize]; 10
③bViewControllerで読み込み・Int型に変換して数値を足し算
objective
1 2NSMutableArray *starArray = [[NSMutableArray alloc]init]; 3 4starArray = [[[NSUserDefaults standardUserDefaults] objectForKey:@"star"] mutableCopy]; 5 6int starCount = 0; 7 8for(int i = 0;i < 152;i++){ 9 10 //ここでエラー 11 int tmp = [starArray[i] intValue]; 12 13 NSLog(@"tmp:%d",tmp); 14 15 starCount = starCount + tmp; 16 17} 18
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。