XML解析后未在UITableView中获取当前数据(使用NSFetchedResultsController)

XML解析后未在UITableView中获取当前数据(使用NSFetchedResultsController),uitableview,core-data,ios5,nsfetchedresultscontroller,Uitableview,Core Data,Ios5,Nsfetchedresultscontroller,这里有点挣扎 我的视图控制器遵循以下协议 在我的init方法中,我将检查远程服务器以获得更新的XML文件。。。解析XML文件,并将内容写入核心数据 My tableview的内容由显示此核心数据的NSFetchedResultsController管理 我的问题: NSFetchedResultsController似乎在从远程文件更新核心数据之前获取数据。我已验证数据库是否正确更新,如果再次运行,TableView将显示正确的数据 也许我只是没有在适当的地方重新加载数据?我已经实施了 -(vo

这里有点挣扎

我的视图控制器遵循以下协议 在我的init方法中,我将检查远程服务器以获得更新的XML文件。。。解析XML文件,并将内容写入核心数据

My tableview的内容由显示此核心数据的NSFetchedResultsController管理

我的问题:

NSFetchedResultsController似乎在从远程文件更新核心数据之前获取数据。我已验证数据库是否正确更新,如果再次运行,TableView将显示正确的数据

也许我只是没有在适当的地方重新加载数据?我已经实施了

-(void)controllerDidChangeContent:(NSFetchedResultsController *)controller {
    [myTableView reloadData];
}
此外,在解析器完成并将新数据写入核心数据后,我将尝试以下操作:

-(void)parserDidEndDocument:(NSXMLParser *)parser {
     [myTableView reloadData];  
}

有人有什么想法吗?让我知道什么额外的代码可能是有用的帖子。谢谢

您可能需要检查以下内容(来自苹果的文档)

因此,控制器实际上有三种操作模式,这取决于它是否具有委托以及是否设置了缓存文件名

  • 无跟踪:委托被设置为零。 控制器只是提供对数据的访问,就像执行抓取时一样

  • 仅内存跟踪:委托为非nil,文件缓存名称设置为nil。 控制器监视其结果集中的对象,并根据相关更改更新节和排序信息

  • 完全持久跟踪:委托和文件缓存名称为非零。 控制器监视其结果集中的对象,并根据相关更改更新节和排序信息。控制器维护其计算结果的持久缓存

  • 听起来你想要完整的持续跟踪。因此,您可能希望确保设置了委托(您可能已经这样做了),并将缓存设置为非nil

    您可能还希望确保在完成解析后保存managedObjectContext。保存后,请确保再次执行提取

    NSError *error;
    BOOL success = [controller performFetch:&error];
    if (!success)
      NSLog(@"Core Data Fetch Error:  %@"error);
    
    可能是应用程序退出时正在保存上下文,这就是为什么重新启动时会看到数据


    祝你好运

    你可能需要检查以下内容(来自苹果的文档)

    因此,控制器实际上有三种操作模式,这取决于它是否具有委托以及是否设置了缓存文件名

  • 无跟踪:委托被设置为零。 控制器只是提供对数据的访问,就像执行抓取时一样

  • 仅内存跟踪:委托为非nil,文件缓存名称设置为nil。 控制器监视其结果集中的对象,并根据相关更改更新节和排序信息

  • 完全持久跟踪:委托和文件缓存名称为非零。 控制器监视其结果集中的对象,并根据相关更改更新节和排序信息。控制器维护其计算结果的持久缓存

  • 听起来你想要完整的持续跟踪。因此,您可能希望确保设置了委托(您可能已经这样做了),并将缓存设置为非nil

    您可能还希望确保在完成解析后保存managedObjectContext。保存后,请确保再次执行提取

    NSError *error;
    BOOL success = [controller performFetch:&error];
    if (!success)
      NSLog(@"Core Data Fetch Error:  %@"error);
    
    可能是应用程序退出时正在保存上下文,这就是为什么重新启动时会看到数据


    祝你好运

    是的,就是这样。解析完成后,我不得不再次执行蚀刻。是的,就是这样。解析完成后,我不得不再次执行蚀刻。