使用常规控制器我可以通过返回FileResult来完成.这似乎不适用于ApiController.可以吗?它甚至是一件正确的事吗?
我即将编写一个简单的iPhone应用程序,它使用Core Data存储通过RESTful Web服务获取的远程数据的本地副本.数据经常变化(添加新记录).我遇到了RestKit,我想知道它是否可以做我需要的东西.我需要的是在开头加载所有记录,然后定期下载自上次检查后添加的记录.显然,即使只使用NSURLConnection,如何才能实现这一点并不神秘,但我希望RestKit(可能与适当的Web服务相结合)可以做到这一点,而无需编写所有的同步逻辑.同样,对我而言,关键是只从服务器获取新的/更改的数据.
假设我从REST Web服务获取一个对象,并且该对象具有时间戳.此时间戳具有毫秒组件.下次我请求相同的对象我不希望它被返回,除非它已经改变,所以我使用If-Modified-Since标头.但是该标题中的日期甚至不应该有毫秒.如果我将时间戳向下舍入,我将始终将对象恢复,就像它总是被修改一样.如果我把它弄清楚,我可能会错过一些更新.在这种情况下,If-Modified-Since标头对我来说完全无用,还是我错过了什么?
它在UIManagedDocument的文档中简要提到过
为了支持异步数据写入,Core Data实际上使用了一对嵌套的托管对象上下文.
特定于UIManagedDocument或Core Data是否始终如此?
同一份文件也指出了这一点
如果适用,您可以将后台线程中的数据直接加载到父上下文.
这是否意味着在以下代码中
NSManagedObjectContext *moc = self.managedObjectContext;
[moc performBlock:^() {
Record *record = [NSEntityDescription
insertNewObjectForEntityForName:@"Record"
inManagedObjectContext:moc];
}];
Run Code Online (Sandbox Code Playgroud)
我应该简单地替换第一行
NSManagedObjectContext *moc = self.managedObjectContext.parentContext;
Run Code Online (Sandbox Code Playgroud)
要做到这一点?
我想我也很困惑直接使用这个父上下文的"适当".我的意思是听起来像performBlock用于将任务卸载到后台队列.为什么我需要弄乱父上下文?
如果有人为我澄清这一切,我将不胜感激.