问题标签 [uidocument]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1535 浏览

objective-c - 使用 UIDocument saveToUrl 在 NSURL 上抛出 NSInvalidArgumentException

我正在尝试进行快速测试以将文件同步到 iCloud。这是我的简单片段:

现在我试着环顾四周,在其他教程中,这似乎是他们这样做的方式。问题是当代码运行时,会抛出这个异常(在 [doc saveToURL] 行):

'NSInvalidArgumentException',原因:' * -[NSURL URLByAppendingPathExtension:]:组件、组件或 pathExtension 不能为 nil。

在此处获取普遍存在的 URL 后,将立即调用运行此逻辑的方法:

我尝试了一些不同的方法来修复它,但它一直在发生。知道问题可能是什么吗?

谢谢大家的时间:)

0 投票
0 回答
431 浏览

c# - 如何将按钮添加到 UIDocumentInteractionController 预览

UIDocumentInteractionController用于文件预览:

如何在视图顶部添加自定义按钮以执行某些操作?

0 投票
1 回答
314 浏览

objective-c - 我们可以确定 iCloud 文件包中发生了什么变化吗?

我正在尝试使用支持 iCloud 的 UIDocument 和基于目录的 NSFileWrapper(又名文件包)来维护复杂的应用程序状态。在我的应用程序中,用户可以有许多不同的配置(有点像为每个潜在驾驶员提供座位设置的汽车)。

对于每个单独的状态,我将一个常规文件 NSFileWrapper 添加到整个文件包中。

将我的 UIDocument 写入/读取云的工作正常。当文件包更改时,我也会收到通知。

问题是我无法从通知中找出子文件(即状态)的哪些添加或更改导致包更改。

我已经尝试在我的自定义 UIDocument 中覆盖presentedSubitemDidChangeAtURL,但这只会给我包的URL。我还尝试了文件包装器的 matchesContentsOfURL 方法,但这似乎不正确,因为子文件包装器没有“真实”URL。

欢迎提出意见和建议。

0 投票
0 回答
268 浏览

objective-c - UIManagedDocument 文件修改日期没有改变

使用正确的保存 API 方法打开、关闭、更改数据和保存文档UIDocument不会更改从fileModificationDate属性返回的值。

文档

修改日期由openWithCompletionHandler:saveToURL:forSaveOperation:completionHandler:revertToContentsOfURL:completionHandler:方法更新。

fileModificationDate始终报告文档文件包装器的创建日期,无论核心数据存储是否被更新。

这当然不是正常行为,对吧?

没有特定的额外代码。简单地说,这是 UIManagedDocument 的子类。UIManagedDocument 自动管理文档包装器内的核心数据存储。代码就这么简单:

将始终返回文档的创建日期。创建日期和修改日期都是相同的,即第一次保存文档以进行创建的日期。但是,内容存储文件的修改日期发生了变化,创建日期与文档包装器相同。

0 投票
0 回答
203 浏览

ios - UIDocument 打开永远不会完成

我有一个 iOS 5.1 应用程序,我正在尝试针对 iOS 6 对其进行优化。问题是它openWithCompletionHandler:永远不会完成。如我所见,第二台设备无法下载此文件。但是设备所有者可以正常使用文件。

我的应用程序使用 2 种文件类型:第一种是纯文本数据,第二种是带有图片数据的文本。文本文件的一切都非常酷。我想问题出在文件大小上,但延迟(我尝试了 40 秒)对我没有帮助。

我尝试使用dataWithContentsOfFile:而不是 UIDocument,结果是

数据:(空)WithError:错误域=NSCocoaErrorDomain代码=256“操作无法完成。(可可错误256。)”

我正在使用以下代码打开文档

我在打开之前添加了以下内容,但它没有效果:

0 投票
1 回答
301 浏览

ios - 5.1 sim 中的 openWithCompletionHandler 概率

我很困惑。我发现 UIDocument 方法 openWithCompletionHandler 适用于 iOS 5 和 IOS 6 模拟程序,但不适用于 iOS 5.1。

关于我如何解决这个问题的任何想法?这只是模拟失败但真实环境没有的事情之一吗?

谢谢。

史蒂夫

0 投票
2 回答
2064 浏览

ios - NSFileWrapper 是否将所有内容加载到内存中?

假设我有一个NSFileWrapper目录。该目录由多级目录和文件组成。有些文件很大。所有这些文件都加载到内存中,还是延迟加载?

如果它们被加载到内存中,是否有NSFileWrapper类似功能的替代方法不会将文件加载到内存中?我可以挂钩的东西UIDocument


这适用于基于文档的应用程序,它使用UIDocument与 iCloud 同步的 's。文档中可以嵌入图像和视频。每个图像/视频都有一个预览图像(缩略图),显示在 HTML 文档中。不应将完整尺寸的图像或视频加载到内存中,而应按需加载。

我还需要一种方法来添加资源而不将其加载到内存中。像“initWithAsset:(ALAsset *)”这样的东西是理想的。

0 投票
0 回答
361 浏览

ios - openWithCompletionHandler 从不调用 iPhone5 中的完成块

最近我遇到了一个奇怪的问题,如果有人遇到过同样的问题,我会很感兴趣。我正在开发一个支持 iCloud 的应用程序,它使用

  • (void)openWithCompletionHandler:(void (^)(BOOL 成功))completionHandler

对于存储在 iCloud 中的某些文件。

我正在使用 XCode 4.5.2 (4G2008a) 并且我有几台设备,每台都运行 iOS 6.0.1:一部 iPhone 3GS、4GS、5、几部 iPad 和 2 部 iPod Touch,第 4 代和第 5 代。此外,我正在使用一些也处理 iCloud 数据的 MAC - 但是,它们使用不同的方案来访问文件。

现在的问题:除了在 iPhone 5 上,该应用程序在所有其他设备上都可以完美运行 - 调用完成处理程序并且正确加载和打开文档,无论其他什么设备同时运行该应用程序。

然而,在 iPhone 5 上,完成块和 loadFromContents:: 都不会被调用,并且应用程序只是挂起,因为如果 iCloud 将它报告为存在的普遍存在的项目,它取决于此文件。

由于相同的应用程序在所有其他设备上运行,我认为不应该有任何编码或逻辑错误,但 iPhone 5 iOS 实现中存在一些差异。有没有人有类似的经历,或者有解决方法的想法?

0 投票
1 回答
577 浏览

iphone - 为什么在我的 UIDocument 自动保存后调用 loadFromContents?

我有一个 iOS 应用程序,它实现了 UIDocument 的自定义子类,该子类将文件包装器封装在数据包、存档对象和图像上。我最初将实现转换为 UIDocument 以获得 iCloud 支持,但它太不可靠了,所以我拔出了 iCloud 部分,只使用带有本地存储的 UIDocument。

当用户修改数据时,我将 updateChangeCount: 发送到 UIDocument 实例,它会定期在后台自动保存。我只在应用程序进入后台时关闭文档。我发现在调用 UIDocument 的 contentsForType 方法的自动保存之后,还会调用 loadFromContents。我在逻辑上不理解这一点,它也导致我的界面出现问题。

我认为 loadFromContents 只有在打开文档或在另一台设备上修改了 iCloud 文档时才会被调用。因此,当我的文档在后台自动保存时,它也会重新加载,这会导致 UI 更新,这有时会丢弃尚未保存的正在进行的新工作。我可以忽略 UI 中的重新加载,但我的模型数据与 UI 对象不同仍然存在一些问题。

那么我做错了什么导致这种行为?我希望保存而不是启动 loadFromContents 或了解如何处理该行为。

谢谢!

0 投票
2 回答
601 浏览

ios - UIDocument loadFromContents 失败并出现 EXC_BAD_ACCESS

我有一个使用 iCloud 文档存储的非常简单的 IOS 应用程序。一切正常,然后在某个时候,我开始在我的文档加载方法中遇到至少一个 iCloud 文档的 EXC_BAD_ACCESS 错误,尽管大多数文件加载得很好。

在此处输入图像描述

我希望我可以“捕获”并处理不良数据并忽略损坏的文件;但我似乎无法弄清楚如何。EXC_BAD_ACCESS 错误会导致应用程序崩溃。

我应该做些什么来提前确定数据或文件将失败并跳过它(或删除它)。