【发布时间】:2014-04-15 10:40:49
【问题描述】:
不管我怎么尝试,这都行不通……
我正在尝试使用UIDocument 在本地保存我的(文本)文件。当我创建一个文件(即它没有加载)时,它保存得很好。 但是,如果我通过打开文件来加载文件然后保存它,它根本不会保存。
编辑:当应用程序进入后台时,我尝试保存我的文档。但是,当我进入前台时,该应用程序似乎实际上“完成了保存”文档。我的应用程序是否不允许在后台保存文档?
我检查了我的网址,它们都是有效的。
这是从头开始制作文档的代码:
document = [[MyDocumentClass alloc] initWithFileURL:fileURL];
fileURL 是之前创建的。
加载时我不打开或创建它,我只是在用户退出应用程序时保存它。
如果文件已经存在于磁盘上:
打开代码如下:
[document openWithCompletionHandler:^(BOOL success){
if (!success) {
NSLog(@"FAILED TO OPEN DOCUMENT");
}
// Code to handle document's data
}];
为了节省:
[document saveToURL:[NSURL fileURLWithPath:path] forSaveOperation:UIDocumentSaveForOverwriting completionHandler:^(BOOL success){
if (!success || document.documentState == UIDocumentStateSavingError) {
NSLog(@"FAILED TO CLOSE DOCUMENT");
}
}];
我的文档在contentsForType: error: 中正确编码并提供了其数据,因为它在首次创建时正确保存。
handleError: userInteractionPermitted: 没有任何错误
有什么想法吗?
注意我将数据保存在applicationDidEnterBackground:
并且永远不会调用 saveToURL: forSaveOperation: completionHandler: 的完成处理程序...
【问题讨论】:
标签: ios objective-c save uidocument