- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我正在开发一款目前已被沙盒化的应用。它充当基本的文本编辑器。最近,我想测试当我同时在我的应用程序和另一个应用程序中打开一个文件时会发生什么,在一个应用程序中进行更新,然后在另一个应用程序中看到更新。我正在使用 Coda
或 BBEdit
作为我的替代编辑器。如果我关闭沙盒——那么这个问题就不存在了。但是,由于自 3 月 1 日起应用程序需要进行沙盒化,我宁愿实现解决方案也不愿观望。
当我打开这两个文件并在我的应用程序中进行编辑,然后切换到另一个应用程序时,更改会反射(reflect)出来,以便那些编辑者拥有刚刚从我的应用程序中保存的版本。但是,如果我执行从他们的应用程序保存然后转到我的应用程序的相反操作 - 没有快乐。在不执行任何操作的情况下,控制台会报告两个特定错误:deny file-issue-extension
和 deny file-write-data
。该应用程序似乎正在失去编辑文档的权限,因为在我的应用程序中打开文档后,它被外部编辑器更改了。如果我尝试将文件保存在我的应用程序中,它会要求复制文档,因为它无法访问原始文档。这不会以相反的方式发生,因为这些应用程序没有被沙盒化,因此具有我的应用程序没有的权限。如果您不希望出现这种行为,您似乎也无法阻止其他应用进行更改。
developer.apple.com 上的文档没有提到这种情况。我不确定这是否是预期的行为。如果是,那么我可以告诉我的用户文档权限已丢失,他们应该保存新版本或重新打开文件。如果这不是预期的行为,那么 NSDocument API 中的什么方法会在文件丢失后授予对该文件的权限?我假设答案是前者,这是有意为之的,但任何人都可以确认并且有文档吗?
最佳答案
Without performing any action, the console reports two specific errors: deny file-issue-extension and deny file-write-data. The app appears to be losing privileges to edit the document since it was changed by an external editor after the document was opened in my app. If I try to save the file in my app, it asks to duplicate the document because it has lost access to the original document
在这种情况下,正确的做法是不要覆盖文件,而是提示用户是否要重新加载文档,如果需要,请重新加载然后写入。
操作系统不允许对已更改的文件进行盲写,这是正确的做法。
查看 NSFilePresenter - (void)presentedItemDidChange 看它是否改变了。重新读取文件,然后查看是否可以保存它。你不会说你被拒绝阅读文件。
此外,由于您没有发布任何代码,显示您使用什么代码访问文件和保存它可能会有所帮助。 NSDocument 已内置处理沙箱中某些类型的文件更改。
关于objective-c - Mac 沙盒应用程序失去对其他应用程序的文件权限,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8838353/
今天我在一个 Java 应用程序中看到了几种不同的加载文件的方法。 文件:/ 文件:// 文件:/// 这三个 URL 开头有什么区别?使用它们的首选方式是什么? 非常感谢 斯特凡 最佳答案 file
就目前而言,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引起辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visit the he
我有一个 javascript 文件,并且在该方法中有一个“测试”方法,我喜欢调用 C# 函数。 c# 函数与 javascript 文件不在同一文件中。 它位于 .cs 文件中。那么我该如何管理 j
需要检查我使用的文件/目录的权限 //filePath = path of file/directory access denied by user ( in windows ) File fil
我在一个目录中有很多 java 文件,我想在我的 Intellij 项目中使用它。但是我不想每次开始一个新项目时都将 java 文件复制到我的项目中。 我知道我可以在 Visual Studio 和
已关闭。此问题不符合Stack Overflow guidelines 。目前不接受答案。 这个问题似乎不是关于 a specific programming problem, a software
我有 3 个组件的 Twig 文件: 文件 1: {# content-here #} 文件 2: {{ title-here }} {# content-here #}
我得到了 mod_ldap.c 和 mod_authnz_ldap.c 文件。我需要使用 Linux 命令的 mod_ldap.so 和 mod_authnz_ldap.so 文件。 最佳答案 从 c
我想使用PIE在我的项目中使用 IE7。 但是我不明白的是,我只能在网络服务器上使用 .htc 文件吗? 我可以在没有网络服务器的情况下通过浏览器加载的本地页面中使用它吗? 我在 PIE 的文档中看到
我在 CI 管道中考虑这一点,我应该首先构建和测试我的应用程序,结果应该是一个 docker 镜像。 我想知道使用构建环境在构建服务器上构建然后运行测试是否更常见。也许为此使用构建脚本。最后只需将 j
using namespace std; struct WebSites { string siteName; int rank; string getSiteName() {
我是 Linux 新手,目前正在尝试使用 ginkgo USB-CAN 接口(interface) 的 API 编程功能。为了使用 C++ 对 API 进行编程,他们提供了库文件,其中包含三个带有 .
我刚学C语言,在实现一个程序时遇到了问题将 test.txt 文件作为程序的输入。 test.txt 文件的内容是: 1 30 30 40 50 60 2 40 30 50 60 60 3 30 20
如何连接两个tcpdump文件,使一个流量在文件中出现一个接一个?具体来说,我想“乘以”一个 tcpdump 文件,这样所有的 session 将一个接一个地按顺序重复几次。 最佳答案 mergeca
我有一个名为 input.MP4 的文件,它已损坏。它来自闭路电视摄像机。我什么都试过了,ffmpeg , VLC 转换,没有运气。但是,我使用了 mediainfo和 exiftool并提取以下信息
我想做什么? 我想提取 ISO 文件并编辑其中的文件,然后将其重新打包回 ISO 文件。 (正如你已经读过的) 我为什么要这样做? 我想开始修改 PSP ISO,为此我必须使用游戏资源、 Assets
给定一个 gzip 文件 Z,如果我将其解压缩为 Z',有什么办法可以重新压缩它以恢复完全相同的 gzip 文件 Z?在粗略阅读了 DEFLATE 格式后,我猜不会,因为任何给定的文件都可能在 DEF
我必须从数据库向我的邮件 ID 发送一封带有附件的邮件。 EXEC msdb.dbo.sp_send_dbmail @profile_name = 'Adventure Works Admin
我有一个大的 M4B 文件和一个 CUE 文件。我想将其拆分为多个 M4B 文件,或将其拆分为多个 MP3 文件(以前首选)。 我想在命令行中执行此操作(OS X,但如果需要可以使用 Linux),而
快速提问。我有一个没有实现文件的类的项目。 然后在 AppDelegate 我有: #import "AppDelegate.h" #import "SomeClass.h" @interface A
我是一名优秀的程序员,十分优秀!