由於@danielbeard correctly stated由於iOS沙盒模式,這將無法像桌面(或更寬鬆的移動)操作系統上那樣直接地工作,這種模式有效地將應用程序數據限制在應用程序本身,儘管值得注意的是手頭的問題是不是沙盒本身,它也存在於較新版本的OS X中,但事實上iOS沒有提供鏡像到應用程序沙箱中的統一文件系統層。您可以通過在Lion的TextEdit中編輯桌面上的文本文檔來清楚地看到自己的情況。 TextEdit發現文檔位於其沙箱中 - ~/Library/Containers/com.apple.TextEdit/Data/Desktop
,但它也清晰地保存到您的桌面~/Desktop
- 在同一時間;爲了沙箱的目的,這兩個目錄都是一個。
跨應用程序的文件層不在IOS存在。 這意味着在iOS中,不可能在多個應用程序中編輯同一個文件的同一個物理副本,因爲每個應用程序都需要在自己的沙箱中有一個副本。然而,當在其他應用程序中打開郵件附件時,通過支持自iOS 3.2以來的「Open In」機制,可以將應用程序沙箱中的文件「傳遞」到應用程序沙箱(嚴格地說是複製它們)。
如果您的應用程序實現以通過此機制及其.lua
文件轉發的能力,任何文本編輯器識別文件類型可以收到一份到自己的沙箱。我對實現的細節很朦朧,不是自己的iOS開發者,但是如果OS X的UTI聲明的規則和我在使用我的iDevices時觀察到的某些東西成立,您甚至可以將文件類型插入到public.text
UTI在你自己的應用程序中的層次結構,這將增加對設備上所有文本編輯器的支持。
如果接收編輯器也實現了「Open in」,並且您的應用程序已註冊爲可以編輯.lua
文件,編輯器可以稍後將編輯後的文件複製迴應用程序的沙箱。在iOS SDK所施加的限制內,發生了什麼(重複數據刪除,版本控制,覆蓋或不使用提示)將由您決定,而我對此一無所知。
下面的蘋果開發者文檔可以提供一個有用的起點:
應用程序是沙盒,所以放置在文檔文件夾中的任何內容都不能被其他應用程序訪問。我會建議在你的應用中建立一個簡單的文本編輯器。 – danielbeard
我試圖避免這種情況 - 考慮到可用的文本編輯器的數量,你會認爲這將是可能的:-( – daven11
是的,至少有很多的例子,只是出於好奇你是否喜歡Codea - http://twolivesleft.com/Codea/? – danielbeard