2011-08-04 85 views
2

我認爲這並不是解決我的問題的方法,但我希望有人可能會從過去的經驗中獲得創造性的工作全面分享。我爲我最新的iPhone/iPad遊戲創建了3D關卡編輯器,而且我正處於最後階段,我需要將地圖寫入我設計的XML文件格式。將XML寫入項目(iOS,Xcode 4)

我使用KISSXML作爲我的XML庫進行解析,並且我準備將其用於寫作以及擴展。我的問題是這樣的:是否有可能以某種方式寫入我可以查看並存儲在項目中的位置?對於我創建的最初的20-30個地圖文件,我想直接將它們導入到項目中作爲稍後可以作爲文本文件進行編輯的資源...我不希望它們作爲應用程序資源存儲在此階段(但我聽說你不能從應用程序寫入項目的資源結構?)。是否有一些創造性的方法可以發送自己的XML或將它寫入我可以輕鬆檢索的位置?當我將編輯器擴展爲玩家可用的工具時,寫入應用程序目錄將非常棒 - 但現在,這不是我所期待的。

任何建議或提示將是太棒了!

這是我現在用來寫出的一個片段。我想一個更簡單的問題是:這是什麼?它是否可以在我的應用程序之外訪問?有什麼方法可以寫出來讓它更易於訪問嗎?

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); 
NSString *documentsDirectory = [paths objectAtIndex:0]; 

//make a file name to write the data to using the documents directory: 
NSString *fileName = [NSString stringWithFormat:@"%@/xmlfile.xml", documentsDirectory]; 

DDXMLDocument* document = [[[DDXMLDocument alloc] initWithXMLString:@"<addresses/>" options:0 error:nil] autorelease]; 
DDXMLElement* root = [document rootElement]; 
[root addChild:[DDXMLNode elementWithName:@"address" stringValue:@"Some Address"]]; 

NSData *xmlData = [document XMLDataWithOptions:DDXMLNodePrettyPrint]; 
if (![xmlData writeToFile:fileName atomically:YES]) { 
    NSLog(@"Could not write document out..."); 
} 

UPDATE

使用以下行:

NSLog(@"Documents: %@", [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0]); 

我可以通過取景器到我的文檔目錄,並查看訪問在OSX /編輯自己撰寫的XML文件。這當然只適用於使用模擬器生成文件,而不是設備。這看起來越來越像一個沒有解決方案的問題......我想我可以通過電子郵件將XML文件作爲附件發送給我自己作爲一個便宜的黑客?不是我的首選解決方案,但現在可能需要做。

+2

我認爲這應該被遷移到Stackoverflow ... – timbooo

+0

對不起,這是一種尷尬...是我可以做的事情,還是排名較高的用戶必須爲我做?我同意,第二個想法是一個相當廣泛的問題。 – David

+0

不要出汗。主持人會爲你做。 – michaelmichael

回答

1

從我的理解,你想檢查你的應用程序創建的文件。想到幾種可能的解決方案。您可以

  1. 通過在應用程序的info.plist中設置UIFileSharingEnabled屬性來啓用Itunes文件共享。
  2. implement Dropbox
  3. 讓您的應用程序將文件發佈到您在本地網絡中擁有的網絡服務器。

選項1可能是最容易設置的,但您必須點擊一下才能獲取您的數據。 如果你有一個網絡服務器無論如何跑我可能會去選項3.

+1

同意,選項1和3都會很好(特別是3)。無論如何,我將繼續研究類似於道具#3的東西,所以這可能是一條路。出於好奇,如果您在iTunes中啓用UIFileSharing,如何獲得文件? – David

+0

啓用UIFileSharing後,您可以通過iTunes訪問應用程序的文件。見http://www.raywenderlich.com/1948/how-integrate-itunes-file-sharing-with-your-ios-app –

+0

謝謝Daniel,這正是我所希望的!非常感謝! – David

0

沒有聽到任何人的消息,我認爲這是不可能的。我正在切換齒輪,現在都是A)將地圖保存到apps目錄以供將來加載,B)通過電子郵件將XML的副本發送給我自己進行提取,然後與項目進行手動集成。不是我希望的理想解決方案,但它確實有效。

希望這可以幫助任何人好奇的道路。