2012-05-09 89 views
3

我有一個應用程序,我正在寫一個其中包含一組嵌入式lua腳本的應用程序。我希望能夠在iPad上編輯腳本 - 這可能嗎?如何從iOS中的其他應用程序編輯文本

我在想的工作流程是:

  1. 開始我的應用程序和測試;
  2. 轉到iPad上的我的文本編輯器並更改lua腳本;
  3. 關閉我的應用程序;
  4. 重新啓動我的應用程序以重新加載腳本;
  5. 轉到1.

編輯:我可以添加「打開方式」選項,以我的應用程序和打開文本文件按this question,但是,一旦我做,做文本編輯器,然後將該文件保存回它來自哪裏?或者它只是使用一個副本?這假設我可以找到一個文本編輯器來打開lua文件,我想有一個地方有一個。

+2

應用程序是沙盒,所以放置在文檔文件夾中的任何內容都不能被其他應用程序訪問。我會建議在你的應用中建立一個簡單的文本編輯器。 – danielbeard

+0

我試圖避免這種情況 - 考慮到可用的文本編輯器的數量,你會認爲這將是可能的:-( – daven11

+0

是的,至少有很多的例子,只是出於好奇你是否喜歡Codea - http://twolivesleft.com/Codea/? – danielbeard

回答

1

由於@danielbeard correctly stated由於iOS沙盒模式,這將無法像桌面(或更寬鬆的移動)操作系統上那樣直接地工作,這種模式有效地將應用程序數據限制在應用程序本身,儘管值得注意的是手頭的問題是不是沙盒本身,它也存在於較新版本的OS X中,但事實上iOS沒有提供鏡像到應用程序沙箱中的統一文件系統層。您可以通過在Lion的TextEdit中編輯桌面上的文本文檔來清楚地看到自己的情況。 TextEdit發現文檔位於其沙箱中 - ~/Library/Containers/com.apple.TextEdit/Data/Desktop,但它也清晰地保存到您的桌面~/Desktop - 在同一時間;爲了沙箱的目的,這兩個目錄都是一個。

Sandbox me once, edit me twice

跨應用程序的文件層不在IOS存在。 這意味着在iOS中,不可能在多個應用程序中編輯同一個文件的同一個物理副本,因爲每個應用程序都需要在自己的沙箱中有一個副本。然而,當在其他應用程序中打開郵件附件時,通過支持自iOS 3.2以來的「Open In」機制,可以將應用程序沙箱中的文件「傳遞」到應用程序沙箱(嚴格地說是複製它們)。

Open me up

如果您的應用程序實現以通過此機制及其.lua文件轉發的能力,任何文本編輯器識別文件類型可以收到一份到自己的沙箱。我對實現的細節很朦朧,不是自己的iOS開發者,但是如果OS X的UTI聲明的規則和我在使用我的iDevices時觀察到的某些東西成立,您甚至可以將文件類型插入到public.text UTI在你自己的應用程序中的層次結構,這將增加對設備上所有文本編輯器的支持。

如果接收編輯器也實現了「Open in」,並且您的應用程序已註冊爲可以編輯.lua文件,編輯器可以稍後將編輯後的文件複製迴應用程序的沙箱。在iOS SDK所施加的限制內,發生了什麼(重複數據刪除,版本控制,覆蓋或不使用提示)將由您決定,而我對此一無所知。

下面的蘋果開發者文檔可以提供一個有用的起點:

0

如果你越獄你的iPad並安裝OpenSSH,你可以做所有這些以及更多。

我使用Moai開發,an SDK for writing games in Lua recently adopted by Double Fine。我可以使用我選擇的編輯器(Vim)通過SSH會話到本地主機(使用提示,iOS SSH客戶端)直接在iPad上編寫代碼。我映射一個熱鍵,重新啓動應用程序。有了藍牙鍵盤,iPad就像筆記本電腦一樣緊密。

您還可以使用像ExpandDrive這樣的東西將iPad的文件系統映射到您的桌面文件系統。然後,您可以瀏覽文件並將其編輯,就好像它們在桌面計算機上一樣,完全無線。你可以在地圖編輯器,重新啓動通過SSH您的應用程序的關鍵,所以工作流程變成:

  1. 編輯Lua中(S)
  2. 命中關鍵重新啓動您的應用程序,看到的變化。
+0

這聽起來很誘人 - 我的一個朋友建議同樣的。也許這就是要走的路。 – daven11

0

您無法從一個應用程序的sanbox訪問iOS中的其他應用程序的sanbox而沒有越獄。

+0

你不能將**轉移到另一個應用的沙箱中,這很正確。但有一種將數據**從一個沙箱發送到另一個沙箱的有序方式,由iOS的LaunchServices風格進行仲裁:「Open In」。看[我的回答](http://stackoverflow.com/a/10548966/990363)。 – kopischke

相關問題