我有一個表視圖與從plist中加載的類別名稱列表。 我想動態刪除,添加和重新排列列表並將其保存到plist.i使用下面的代碼,它在模擬器上工作很好,但它在設備上崩潰。編輯一個TableView並更新plist
In ViewDid Load:
self.categoryFile = [[NSBundle mainBundle]pathForResource:@"Categories" ofType:@"plist"];
self.categoryList = [[NSMutableArray alloc]initWithContentsOfFile:self.categoryFile];
- (void)tableView:(UITableView *)tableView commitEditingStyle(UITableViewCellEditingStyle)editingStyle
forRowAtIndexPath:(NSIndexPath *)indexPath{
if (editingStyle == UITableViewCellEditingStyleDelete){
[[self categoryList] removeObjectAtIndex:[indexPath row]];
NSArray *indexPathsToRemove = [NSArray arrayWithObject:indexPath];
[tableView deleteRowsAtIndexPaths:indexPathsToRemove withRowAnimation:UITableViewRowAnimationRight];
[tableView reloadData];
NSArray *newArr = [[NSArray alloc]initWithArray:self.categoryList];
[newArr writeToFile:self.categoryFile atomically:YES];
[newArr release];
}
}
- (void)tableView:(UITableView *)tableView moveRowAtIndexPath:(NSIndexPath *)fromIndexPath toIndexPath:(NSIndexPath *)toIndexPath{
NSString *contentsToMove = [[[self categoryList] objectAtIndex:[fromIndexPath row]] retain];
[[self categoryList] removeObjectAtIndex:[fromIndexPath row]];
[[self categoryList] insertObject:contentsToMove atIndex:[toIndexPath row]];
NSArray *newArr = [[NSArray alloc]initWithArray:self.categoryList];
[newArr writeToFile:self.categoryFile atomically:YES];
[newArr release];
[contentsToMove release];
}
的錯誤是在該行未來將writeToFile:atomically.if我也沒什麼用,但刪除了這一行其工作的設備。
ü可以給我一些代碼,我不知道你在說什麼,而且我是新來的目標-C – Chandu
每個應用程序都讀的想法 - 僅捆綁,然後一讀 - 編寫沙箱,其中包括文檔目錄。如果要在應用程序中寫入文件,可以將文件從軟件包複製到文檔目錄。代碼應該很容易挖掘 –
@Chandu更新w /一些代碼。 –