我有一个自定义UIDocument子类,并实现了loadFromContents:
和contentsForType:
。
要检测到其他设备上的文档已被更改,我按照Apple documentation中的建议添加了loadFromContents:
的代理:
- (BOOL)loadFromContents:(id)contents ofType:(NSString *)typeName error:(NSError **)outError {
// load from disk […]
if ([_delegate respondsToSelector:@selector(noteDocumentContentsUpdated:)]) {
[_delegate noteDocumentContentsUpdated:self];
}
return YES;
}
我的问题是,当我在其他设备上更改文档时,我会收到文档状态更改通知(edit_disabled
后跟normal
),但内容不重新加载并且未调用loadFromContents:
。
内容肯定已在磁盘上更新。当我通过UI手动重新打开文档时,我立即看到最新的更改。
其他时候它可以工作,loadFromContents:
会自动调用。我无法弄清楚为什么它有时不起作用。有没有人见过这个问题?
答案 0 :(得分:0)
您可能希望在通知和/或重新加载文档再次处于正常状态后手动执行文档版本解析。
查看以下UIDocument
方法,只需重新加载文档内容:
- (void)revertToContentsOfURL:(NSURL *)url completionHandler:(void (^)(BOOL success))completionHandler;