いくつかのデータを含む UITableView があります。すべてのセルにはボタンがあり、それを押すと選択したセルが削除されます。その後、データを NSUserDefault で保存する必要があります。ここにいくつかのコード:
- (void)buttonPressed:(UIButton *)sender{
int tag=sender.tag;
[myArray removeObjectAtIndex:tag];
[self saveData];
[self.myTableView reloadData];
}
メソッドは次のbuttonPressed
メソッドを呼び出しますsaveData
。
-(void)saveData{
dataString=[[NSString alloc]init]; //defined in .h file
for(int i=0; i<([myArray count]); i++){
ClassObject *aObject=[[ClassObject alloc]init];
aObject=[myArray objectAtIndex:i];
dataString=[dataString stringByAppendingString:aObject.idObject];
dataString=[dataString stringByAppendingString:@"$"];
dataString=[dataString stringByAppendingString:aObject.description1];
dataString=[dataString stringByAppendingString:@"$"];
dataString=[dataString stringByAppendingString:aObject.description2];
dataString=[dataString stringByAppendingString:@"?"];
[aObject release];
}
NSUserDefaults *dataDefault=[NSUserDefaults standardUserDefaults];
[dataDefault setObject:dataString forKey:@"myDataString"];
[dataDefault synchronize];
[dataString release];
}
saveData
デバッグモードでは、メソッドが終了するまですべてがうまくいきます。メソッドでデバッグが返されるbuttonPressed
と、テーブルビューがリロードされ、アプリがクラッシュします。理由はわかりません。
いくつかのアイデア?ありがとう。