如何在iOS中从另一个应用程序中编辑文本
我正在编写一个应用程序,其中包含一组嵌入式Lua脚本。我想在iPad上编辑这些脚本,这可行吗?
我想到的工作流程是:
- 启动我的应用程序并测试;
- 转到我的iPad上的文本编辑器并更改Lua脚本;
- 关闭我的应用程序;
- 重新启动我的应用程序以重新加载脚本;
- 回到1。
编辑:我可以为我的应用程序添加"打开"选项,根据这个问题,打开文本文件,但是,一旦我这样做,文本编辑器会把文件保存回原来的位置吗?还是只是使用一个副本?假设我能找到一个可以打开Lua文件的文本编辑器,我想应该有这样一个编辑器。
在iOS中,如果没有越狱,您无法从一个应用程序的沙盒访问另一个应用程序的沙盒。
正如@danielbeard正确指出的,这样做在桌面(或更宽容的移动)操作系统上不会像预期的那样直接工作,因为iOS的沙盒模型有效地将应用程序数据限制在应用程序本身内部,尽管值得注意的是,问题并非沙盒 _本身_,较新版本的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的限制约束,我对此一无所知。
以下是苹果开发人员文档可能提供有用起点的文件:
- _iOS 应用程序编程指南_,特别是“应用程序相关资源”部分
- iOS面向文档的应用程序编程指南
- _信息属性列表密钥参考_,特别是“Cocoa Keys”部分
- Lua 虚拟机加密load(string.dump(function)) 后执行失败问题如何解决
- 我想创建一个 Nginx 规则,禁止访问
- 如何将两个不同的lua文件合成一个 东西有点长 大佬请耐心看完 我是小白研究几天了都没搞定
- 如何在roblox studio中1:1导入真实世界的地形?
- 求解,lua_resume的第二次调用继续执行协程问题。
- 【上海普陀区】内向猫网络招募【Skynet游戏框架Lua后端程序员】
- SF爱好求教:如何用lua实现游戏内调用数据库函数实现账号密码注册?
- Lua实现网站后台开发
- LUA错误显式返回,社区常见的规约是怎么样的
- lua5.3下载库失败
- 请问如何实现文本框内容和某个网页搜索框内容连接,并把网页输出来的结果反馈到另外一个文本框上
- lua lanes多线程使用
- 一个kv数据库
- openresty 有没有比较轻量的 docker 镜像
- 想问一下,有大佬用过luacurl吗
- 在Lua执行过程中使用Load函数出现问题
- 为什么 neovim 里没有显示一些特殊字符?
- Lua比较两个表的值(不考虑键的顺序)
- 有个lua简单的项目,外包,有意者加微信 liuheng600456详谈,最好在成都
- 如何在 Visual Studio 2022 中运行 Lua 代码?

如果您越狱您的 iPad 并安装了 OpenSSH,那么您可以做所有这些和更多的事情。
我使用 Moai 进行开发,这是一个最近被 Double Fine 采用的用于编写游戏的 Lua SDK。我可以通过一个 SSH 会话连接到本地主机(使用 Prompt,一种 iOS SSH 客户端),使用我选择的编辑器(Vim)直接在 iPad 上编码。我映射一个快捷键来重新启动应用程序。配合蓝牙键盘,iPad 可以接近笔记本电脑。
您还可以使用类似于 ExpandDrive 的工具将 iPad 的文件系统映射到桌面文件系统中。然后,您可以像在桌面机器上一样浏览和编辑文件,完全无线连接。您可以在编辑器中映射一个按键来通过 SSH 重新启动您的应用程序,所以工作流程如下: