编辑在IOS应用程序中管理的预先填充的sqlite数据库核心数据

时间:2011-10-30 22:20:22

标签: objective-c ios database sqlite core-data

我想添加&删除我的应用中的新条目。当我添加或删除它时,也应对sqlite数据库执行相同的操作。但是怎么样?

我想管理的实体称为“逃犯”。下面是我的第一个视图controller.m(包含tableview和nsmutable array * 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];
}

即使是最轻微的提示也会受到高度赞赏。谢谢!

1 个答案:

答案 0 :(得分:0)

我想也许你的方法错了。 没有看到你的其他代码,我不能说太多,但以下是CoreData应该如何工作:

您更新对CoreData FIRST的任何更改,然后CoreData将通知委托/观察者数据将被重新加载,这是您更新对象缓存并通知表视图更新的地方。

因此,不要自己更新数据阵列,只需从CoreData缓存它。