У меня есть UITableView с некоторыми данными. У каждой ячейки есть кнопка, и если вы нажмете ее, вы удалите выбранную ячейку. После этого я должен сохранить свои данные с помощью NSUserDefault. Вот некоторые код:плохой доступ после синхронизации 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
, он перезагружает табличное представление, а затем приложение сбой. И я не знаю, почему.
Некоторые идеи? Благодарю.
происходит ли он в любой строке кода, который вы указываете там? на строке '' reloadData'' или сразу после возврата из метода '' ButtonPressed''? –
Возможно, вам стоит опубликовать свой код делегата datasource, похоже, что там происходит сбой. – Marcel
@MichaelDautermann он сработает после того, как метод «buttonPressed» закончен. сразу после последнего '}' – gabboSonc