问题标签 [nsfilewrapper]

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 回答
187 浏览

iphone - 在 iOS 中从 NSFileWrapper 播放电影

你如何播放一部电影NSFileWrapper

我希望在(如)中找到一个initWithData:构造函数,但只提供了一个。MPMoviePlayerControllerAVAudioPlayerinitWithContentURL:

0 投票
1 回答
1386 浏览

objective-c - 如何在 NSTextView 中显示 gif 图像

我是mac开发的新手。我正在通过继承 NSTextView 来开发一个关于richEdit 的应用程序。在我自定义的 textView 中,我可以插入 .bmp .jpeg .png 之类的图像。代码是这样的:

通过这种方法,那些图像效果很好,但是当图像是 gif 时,动画不显示。所以,我试着这样显示:

最后,gif动画工作。但是我的问题来了:当我单击或选择 gif 图像时,右键单击上下文菜单不显示,但其他类型图像的上下文菜单效果很好。

0 投票
2 回答
1144 浏览

macos - 检查 Cocoa 中的两个文件是否相同

您如何有效地检查 Cocoa 中的两个文件是否相同(具有相同的数据)?

上下文:我正在编写一个程序,它接收一个文件作为输入(输入文件)并将其复制到一个目录中。如果目录已经包含同名文件(同名文件),那么只有当同名文件不同时,才应使用新名称复制输入文件。

0 投票
0 回答
262 浏览

macos - 在 fileWrapperOfType 中取消阻止用户交互

我想在我的 NSDocument 中实现异步保存。根据文档,我需要返回 YES ,canAsynchronouslyWriteToURL:ofType:forSaveOperation:然后unblockUserInteraction在写作期间调用。

在我的文档中,写入是fileWrapperOfType:error:通过简单地返回一个 NSFileWrapper 来执行的。

关于这一点,文档说:

例如,fileWrapperOfType:error: 的默认实现在创建要返回的 NSFileWrapper 对象时调用 [unblockUserInteraction]。假设 NSFileWrapper 没有被后续的用户操作改变,它实际上是文档内容的“快照”,一旦它被创建,它就可以安全地在主线程上继续处理用户事件,即使其中一些用户事件可能在安全写入 NSFileWrapper 对象之前更改文档的内容。

目前在我的代码self.myMutableFileWrapper中可以更改 after fileWrapperOfType:error,所以我不能假设它不会像文档所说的那样发生突变。

这是否意味着我应该修改fileWrapperOfType:error:以复制我的文件包装器,然后调用unblockUserInteraction?像这样的东西:

如果以上是正确的,我如何制作一个 NSFileWrapper 的副本?此外,制作一个可能巨大的 NSFileWrapper 的副本不会否定异步保存的性能优势吗?

0 投票
1 回答
2071 浏览

ios - NSKeyedUnarchiver SIGBUS BUS_ADRALN 崩溃

我使用以下通常效果很好的方法在 NSFileWrapper 中解压缩数据:

但是,我偶尔会遇到线路 SIGBUS 崩溃unarchiver = [[NSKeyedUnarchiver alloc] initForReadingWithData:data];。我猜这种类型的异常没有被我的异常处理程序捕获?我该如何处理此类异常以及导致它们的原因?

这是 Crashlytics 崩溃报告:

0 投票
1 回答
644 浏览

ios - 带有核心数据、照片和 iCloud 的 iOS 应用

我正在开发一个应用程序,它使用核心数据(使用 UIManagedDocument)来存储我想与 iCloud 同步的用户生成数据。我还想在应用程序中同步用户使用相机拍摄的照片。

我读到将实际照片存储在核心数据中并不是一个好主意。相反,最好将照片存储在文件系统中,并将 fileURL 放在核心数据中。

使用这种方法,当使用 UIDocument 将照片存储在文件系统中(在 Documents 文件夹下)时,推荐的方法是什么?我想过:

  1. 对于每张照片,使用 NSFileWrapper(包含实际图像和缩略图),或
  2. 使用顶级 NSFileWrapper,并为每张照片将所有 NSFileWrapper 放入其中
  3. 类似于#2,但只是将所有照片/缩略图直接放在顶级 NSFileWrapper

哪种方法更适合将照片与 iCloud 同步?有没有更好的方法?

0 投票
1 回答
153 浏览

iphone - 使用 NSFileWrapper 在 UIDocument 中存储 BOOL

这可能是我太厚了,但是如何将 BOOL 存储在 UIDocument 中?我目前正在使用 NSFileWrappers 在“contentsForType:error:”方法中存储字符串和图像,但是看到没有办法将 bool 转换为 NSData,最好的方法是什么?

谢谢

0 投票
1 回答
801 浏览

ios - 在 NSKeyedUnarchiver 对象中找不到密钥

我通常以这样的方式编码我的数据NSFileWrapper(我省略了 NSFileWrapper 位):

我通常会在这样做时取回我的数据:

有时,我会NSData返回(不是 nil),但[unarchiver decodeObjectForKey:@"data"]会返回 NIL。看起来好像没有键 @"data" 的对象,即使应该有。我想编码时一定出了问题,但我不知道如何解决这个问题。我可以只取其中的任何内容data并对其进行编码,而不用担心它是否有正确的密钥吗?我的意思是应该只有一个关键的“数据”。

0 投票
2 回答
1172 浏览

macos - NSFileWrapper 有时返回 nil

我正在使用NSFileWrapper我的包裹文件。有时,当我请求包内文件的数据时,我得到nil.

这就是我查询包内文件数据的方式:

此方法最终开始为某些文件(不是全部)返回 nil。可悲的是,我没有设法始终如一地重现该问题。

如果有帮助,这就是我打开包裹的方式:

这就是我更新包内文件数据的方式:

这就是我保存包的方式:

为什么会发生这种情况?有没有办法防止它?

的文档regularFileContents似乎谈到了这个问题:

如果用户在调用 readFromURL:options:error: 或 initWithURL:options:error: 之后但在 NSFileWrapper 读取文件内容之前修改了文件,则此方法可能返回 nil。使用 NSFileWrapperReadingImmediate 读取选项来降低出现该问题的可能性。

但我不明白在上面的代码中必须改变什么来防止这种情况。

失败的实验

如果返回 nil,我尝试保存文档,regularFileContents但之后仍然返回 nil。像这样:

0 投票
1 回答
314 浏览

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

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

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

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

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

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

欢迎提出意见和建议。