我有一个带有一些数据的 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
方法时,它会重新加载 tableview,然后应用程序崩溃。我不知道为什么。
一些想法?谢谢。