Ios 使用FMDB for SQLite library如何自动更新tableview(如ControllerDidChange)核心数据的内容

Ios 使用FMDB for SQLite library如何自动更新tableview(如ControllerDidChange)核心数据的内容,ios,sqlite,core-data,fmdb,Ios,Sqlite,Core Data,Fmdb,我在我的应用程序中使用核心数据,但我注意到这有点慢,而且我遇到了一些不一致的问题,可能我管理得不好,但是我想传递到SQLite,我找到了FMDB库,但我的问题是,当我在数据库中进行背景更改时,如何自动更新tableview?使用核心数据有NSFetchedController,特别是NSFetchedResultsControllerDelegate来自动刷新表视图,我如何使用SQLite执行此操作?您可以使用NSNotificationCenter进行此操作,下面是代码示例 在TableVie

我在我的应用程序中使用核心数据,但我注意到这有点慢,而且我遇到了一些不一致的问题,可能我管理得不好,但是我想传递到
SQLite
,我找到了
FMDB
库,但我的问题是,当我在数据库中进行背景更改时,如何自动更新tableview?使用核心数据有
NSFetchedController
,特别是
NSFetchedResultsControllerDelegate
来自动刷新表视图,我如何使用SQLite执行此操作?

您可以使用
NSNotificationCenter
进行此操作,下面是代码示例

在TableViewController.m文件中添加以下代码

- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
    if (self) {
        // Custom initialization
        [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(reloadTableView:) name:@"ReloadTableView" object:nil];
    }
    return self;
}

- (void)reloadTableView:(NSNotification*)notification
{
    [tableView relodData];
}
在你调用后台线程的地方,把这段代码放在它的完成部分

[[NSNotificationCenter defaultCenter] postNotificationName:@"ReloadTableView" object:nil];

为此,您可以使用
NSNotificationCenter
,下面是代码示例

在TableViewController.m文件中添加以下代码

- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
    if (self) {
        // Custom initialization
        [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(reloadTableView:) name:@"ReloadTableView" object:nil];
    }
    return self;
}

- (void)reloadTableView:(NSNotification*)notification
{
    [tableView relodData];
}
在你调用后台线程的地方,把这段代码放在它的完成部分

[[NSNotificationCenter defaultCenter] postNotificationName:@"ReloadTableView" object:nil];

更改数据库调用
[tableView relodData]后。或者您正在应用程序外的DB中进行更改?不,我在应用程序的后台线程中进行呼叫…然后创建通知。当后台线程完成并在该通知方法中调用
[tableView relodData]时,将触发
在DB调用中更改后重新加载tableView中的数据
[tableView relodData]。或者您正在应用程序外的DB中进行更改?不,我在应用程序的后台线程中进行呼叫…然后创建通知。当后台线程完成并在该通知方法中调用
[tableView relodData]时,将触发在tableView中重新加载数据