Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/24.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
Ios 您的文档没有保存吗?_Ios_Objective C_Save_Uidocument - Fatal编程技术网

Ios 您的文档没有保存吗?

Ios 您的文档没有保存吗?,ios,objective-c,save,uidocument,Ios,Objective C,Save,Uidocument,不管我怎么做,这都不管用 我正在尝试使用UIDocument在本地保存我的(文本)文件。当我创建一个文件(即,它没有加载)时,它保存得很好但是,如果通过打开文件然后保存来加载文件,它将无法保存 编辑:当应用程序进入后台时,我尝试保存我的文档。然而,当我进入前台时,应用程序似乎实际上“完成了保存”文档。是否不允许我的应用程序在后台保存文档 我已经检查了我的URL,它们都是有效的 以下是从头开始创建文档的代码: document = [[MyDocumentClass alloc] initWith

不管我怎么做,这都不管用

我正在尝试使用
UIDocument
在本地保存我的(文本)文件。当我创建一个文件(即,它没有加载)时,它保存得很好但是,如果通过打开文件然后保存来加载文件,它将无法保存

编辑:当应用程序进入后台时,我尝试保存我的文档。然而,当我进入前台时,应用程序似乎实际上“完成了保存”文档。是否不允许我的应用程序在后台保存文档

我已经检查了我的URL,它们都是有效的

以下是从头开始创建文档的代码:

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:UserInteractionAllowed:

有什么想法吗

N.B.我将数据保存在
ApplicationIdentinterBackground:


而且,
savetoul:forSaveOperation:completionHandler:
的完成处理程序从未被调用…

您在模拟器上测试过它吗?车满了,因为不承诺立即进行保存!如果您在模拟器上测试,请尝试以下操作:在模拟器上安装应用程序,停止首次发布会话,在模拟器上打开应用程序,编辑并保存您的文档,关闭应用程序,重新打开应用程序并检查您的文档是否已保存-如果是,则可以!。PS with simulator当您停止首次亮相时,您可能会中断在后台保存的过程(但我们不知道系统何时执行此操作)


跳过此帮助

谢谢阿尔芒·多姆的帮助。事实证明,在我的应用程序进入前台之前,保存是暂停的,因为当用户按下home按钮时,我正在保存。这个问题似乎解决了这个问题:

您是否首先在某个地方创建了文档

例如,对于创建:

[document saveToURL:[NSURL fileURLWithPath:path] forSaveOperation:UIDocumentSaveForCreating completionHandler:^(BOOL success){
    if (!success || document.documentState == UIDocumentStateSavingError) {
    NSLog(@"FAILED TO CLOSE DOCUMENT");
}
}];
和用于覆盖:

[document saveToURL:[NSURL fileURLWithPath:path] forSaveOperation: UIDocumentSaveForOverwriting completionHandler:^(BOOL success){
    if (!success || document.documentState == UIDocumentStateSavingError) {
    NSLog(@"FAILED TO CLOSE DOCUMENT");
}
}];

当我重新进入前台时,我的文档保存了!