我有一个正在编写的应用程序,其中包含一组嵌入式lua脚本。我希望能够在iPad上编辑脚本-这可能吗?
我想到的工作流程是:
编辑:我可以在应用程序中添加“打开方式”选项,并按照this question打开文本文件,但是,一旦执行此操作,文本编辑器便会将文件保存回原来的位置吗?还是只使用副本?假设我可以找到一个打开lua文件的文本编辑器,我想某个地方会有一个。
最佳答案
由于@danielbeard correctly stated,由于iOS沙箱模型,它无法像台式机(或更宽松的移动设备)那样直接在桌面操作系统上运行,因为它可以有效地将应用程序数据限制到应用程序本身,尽管值得注意的问题不是沙箱se,这也存在于较新的OS X版本中,但事实是iOS没有提供统一的文件系统层,该文件系统层已镜像到应用程序的沙箱中。通过在Lion的TextEdit中在桌面上编辑文本文档,您可以轻松,直观地看到自己的内容。 TextEdit可以看到文档位于其沙箱中-~/Library/Containers/com.apple.TextEdit/Data/Desktop
,但同时也可以清楚地将其保存到桌面~/Desktop
中。就沙箱而言,两个目录都是一个。
跨应用程序文件层在iOS中不存在。 这意味着在iOS中,无法在多个应用程序中编辑一个文件的同一物理副本,因为每个应用程序都需要在其自己的沙箱中创建一个副本。 但是,可以通过iOS 3.2以来支持的“打开方式”机制将文件从应用程序沙箱“传递”到应用程序沙箱(严格来说:将它们复制),如在其他应用程序中打开邮件附件时所见。
如果您的应用通过此机制实现了转发其.lua
文档的功能,则任何识别文件类型的文本编辑器都可以将副本接收到其自己的沙箱中。我对实现细节感到迷惑,不是我自己不是iOS开发人员,但是如果OS X的UTI声明规则以及我在使用iDevices时观察到的某些事情成立,您甚至可以将文件类型插入public.text
UTI中您自己的应用中的层次结构,这将为设备上的所有文本编辑器添加对它的支持。
如果接收方编辑器也实现了“打开方式”,并且您的应用程序已注册为可以编辑.lua
文件,则编辑器以后可以将编辑后的文件复制回应用程序的沙箱中。在iOS SDK施加的约束范围内,发生什么事情(重复数据删除,版本控制,有无提示覆盖或无提示)将由您决定,我对此一无所知。
以下Apple Developer文档可能提供了一个有用的起点: