Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Objective c NSFetchedResultsController对象不是最新的_Objective C_Ios_Cocoa Touch_Core Data - Fatal编程技术网

Objective c NSFetchedResultsController对象不是最新的

Objective c NSFetchedResultsController对象不是最新的,objective-c,ios,cocoa-touch,core-data,Objective C,Ios,Cocoa Touch,Core Data,我有一个带有tablview的视图控制器,它显示来自NSFetchedResultsController的数据,这很好,它工作得很好 FRC中的每个对象表示一个已从服务器下载或尚未从服务器下载的文件。当用户点击一行时,应用程序会检查文件是否已下载,如果未下载,则会将对象更新为标记文件已下载。当用户再次点击该行时,它应该知道该行已被下载,只需打开该文件即可 然而,发生的事情是,文件被下载,对象被更新,但是当我再次点击该行时,发现FRC的对象版本没有更新以反映新的更改,因此它认为文件没有被下载,因此

我有一个带有tablview的视图控制器,它显示来自NSFetchedResultsController的数据,这很好,它工作得很好

FRC中的每个对象表示一个已从服务器下载或尚未从服务器下载的文件。当用户点击一行时,应用程序会检查文件是否已下载,如果未下载,则会将对象更新为标记文件已下载。当用户再次点击该行时,它应该知道该行已被下载,只需打开该文件即可

然而,发生的事情是,文件被下载,对象被更新,但是当我再次点击该行时,发现FRC的对象版本没有更新以反映新的更改,因此它认为文件没有被下载,因此再次下载

我是否需要重新获取FRC中的数据,或者我是否做了其他错误的事情?
谢谢,原来是我自己的错。我在其他地方遇到了一个问题,导致创建了新对象,因此FRC返回了错误的对象。然后,当更新正确的对象时,FRC不知道,因为它引用了错误的对象

是否在后台线程中更新对象?然后,这个问题和解决方法可能会有所帮助:。所有更改都在同一后台线程中执行,使用[context performBlock:]或[context performBlock AndWait:]但FRC正在主线程上工作?你在背景MOC中使用嵌套的子上下文吗?是的。不过我发现了这个问题。这不是一个线程的事情(虽然我确实需要检查这样的事情)。我在其他地方犯了一个错误,创建了不相关的随机对象,因此我的FRC返回了错误的对象,当其他对象更新时,FRC没有更新,因为它不知道这些对象:(