我正在设置NSFileCoordinator
并NSFilePresenter
在我的应用程序中,因此我可以安全地从我的 AppleWatch 应用程序执行文件 IO。在我的代码中有一些地方我会快速连续多次写入文件。这本身就是一个问题,我正在努力纠正它,但我注意到这个过程中有一些奇怪的行为。
我这样包装我的文章:
//In a class that implements NSFilePresenter:
NSFileCoordinator *coord = [[NSFileCoordinator alloc]initWithFilePresenter:self];
[coord coordinateWritingItemAtURL:self.presentedItemUrl options:0 error:nil byAccessor:^(NSURL *url)
{
//do my writing here using CFWriteStreamRef or NSOutputStream
}];
在第一次写入时,写入块发生在 1 ms 内。coordinateWritingItemAtURL
但在那之后,调用和执行写入块之间大约有 0.5 秒的延迟。
这是预期的行为吗?
一些文档说用于批处理操作NSFileCoordinator
,但是当我不批处理时得到这么长时间的延迟似乎很奇怪。NSFilePresenter
prepareForReadingItemsAtURLs:writingItemsAtURLs:options:error:byAccessor:
更新:阅读也会发生这种情况。
更新 2: 这是一个重现问题的示例项目。