编辑在 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 数据库核心数据的主要内容,如果未能解决你的问题,请参考以下文章

CakePHP 2.4:不需要的预填充表单数据

角2材料2中的预填充垫自动完成

模型形式中的 django auto slug,例如 django admin 中的预填充字段

可以将 Core Data 与不同的预填充 sqlite db 一起使用吗?

Angularjs:Cloudinary 上传小部件中的预填充搜索字段

在 PHP 中预填充 AcroForms PDF