编辑在 IOS 应用程序中管理的预填充 sqlite 数据库核心数据
Posted
技术标签:
【中文标题】编辑在 IOS 应用程序中管理的预填充 sqlite 数据库核心数据【英文标题】:Editing a pre-populated sqlite database core-data managed in IOS app 【发布时间】:2011-10-30 22:20:22 【问题描述】:我想在我的应用中添加和删除新条目。当我添加或删除它时,它也应该对 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];
即使是最轻微的小费也将受到高度赞赏。谢谢!
【问题讨论】:
【参考方案1】:我想也许你在这里有错误的方法。 在没有看到你的其他代码的情况下,我不能说太多,但是以下是 CoreData 的工作方式:
您首先更新对 CoreData 的任何更改,然后 CoreData 将通知委托/观察者数据将被重新加载,这就是您更新对象缓存并通知表视图更新的地方。
因此不要自己更新数据数组,你只是从 CoreData 中缓存它。
【讨论】:
你介意我给你一个项目的链接来帮助我吗?还是谢谢。 这可能是不必要的,你为什么不从Xcode库中引用Apple的伟大位置示例,很简单。以上是关于编辑在 IOS 应用程序中管理的预填充 sqlite 数据库核心数据的主要内容,如果未能解决你的问题,请参考以下文章
模型形式中的 django auto slug,例如 django admin 中的预填充字段
可以将 Core Data 与不同的预填充 sqlite db 一起使用吗?