[英]Editing a pre-populated sqlite database core-data managed in IOS app
我想在我的应用中添加和删除新条目。 当我添加或删除它时,也应该对sqlite数据库执行相同的操作。 但是如何?
我要管理的实体称为“逃犯”。 下面是我的第一个视图controller.m(包含tableview和nsmutable数组* items)代码:
- (void)viewWillAppear:(BOOL)animated
{
[super viewWillAppear:animated];
iBountyHunterAppDelegate *appDelegate = (iBountyHunterAppDelegate*)[[UIApplication sharedApplication] delegate];
NSManagedObjectContext *managedObjectContext = appDelegate.managedObjectContext;
NSFetchRequest *request = [[NSFetchRequest alloc] init];
NSEntityDescription *entity = [NSEntityDescription entityForName:@"Fugitive" inManagedObjectContext:managedObjectContext];
[request setEntity:entity];
NSSortDescriptor *sortDescriptor = [NSSortDescriptor sortDescriptorWithKey:@"name" ascending:YES];
[request setSortDescriptors:[NSArray arrayWithObject:sortDescriptor]];
NSError *error;
NSMutableArray *mutableFetchResults = [[managedObjectContext executeFetchRequest:request error:&error] mutableCopy];
if (mutableFetchResults == nil) {
// Handle the error;
}
self.items = mutableFetchResults;
[mutableFetchResults release];
[request release];
[self.tableView reloadData];
}
即使是最微小的提示也将受到高度赞赏。 谢谢!
我想也许您在这里有错误的做法。 没有看到太多其他代码,我不能说太多,但是以下是CoreData应该如何工作:
您更新对CoreData FIRST的所有更改,然后CoreData将通知委托/观察者要重新加载数据,这就是您更新对象缓存并通知表视图进行更新的地方。
因此,不要自己更新数据数组,而只需从CoreData缓存它即可。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.