2009-06-02 91 views
2

問題是,我的應用程序將數百兆字節保存在iPhone的用戶文檔目錄中。在測試過程中,iPhone模擬器需要很長時間才能在每個版本上啓動應用程序,因爲它在每次重建時將所有這些數據複製到新的文檔目錄。有沒有解決方法可以讓目錄每次都保留在同一個地方或以某種方式加速啓動?例如,具有HEX值的導演會更改iPhone模擬器上的每個重建/重新啓動,並且這可能非常耗時:如何加速iPhone模擬器中的應用程序啓動?

./Library/Application Support/iPhone Simulator/User/Applications/B32A0BA1-5843-4FDE-B5FB -4E40460BD8CC /文檔/

感謝,

馬特

+0

設備相對於模擬器的速度如何? – Nosredna 2009-06-02 20:47:42

+0

隨着更多文檔文件的添加,啓動速度在設備上不會改變,但在模擬器中,我用250 MB照片(在啓動期間未由我的應用使用)獲得旋轉的蘋果色輪10秒。它幾乎看起來像XCode或模擬器以某種方式「處理」這些文件,因爲沒有它們即可立即啓動。隨着我在文檔目錄中累積更多數據,時間似乎會增加。 – Matt 2009-06-02 22:04:10

回答

11

模擬器(與設備本身不同)不必保持在沙箱位置。

所以從模擬器保存文件時,你可以嘗試:

#if TARGET_IPHONE_SIMULATOR 

// save your files to a fixed location on your hard-disk 
// (like /Users/yourusername/MyIPhoneAppDebugStorage) 

#else 

// Save files normally 
// (to [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, 
//  NSUserDomainMask, YES) objectAtIndex:0]) 

#endif 

這樣,你是大文件總是在你的硬盤上的固定營業場所從模擬器運行時。

0

,以縮短建造時間,最簡單的辦法可能是創建一個新的Xcode目標,其中包括數據的合理的子集。假設這些數據文件是XCode項目中的「資源」文件,您可以複製您的應用程序目標,將其重命名爲「app lite」或某種類型,然後編輯「複製資源」構建階段以不包含所有文件或一個較小的文件,或其他)。

+0

對不起,如果我不是更清楚,但這些文件不是XCode項目中的「資源」文件,而是運行時由我的應用程序保存到文檔目錄的文件([NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask,YES)objectAtIndex :0])。謝謝回覆。 – Matt 2009-06-02 21:58:14

0

XCode在每次構建和運行時都不會創建一個新目錄,它只是重命名舊目錄。

我有我存儲在文檔目錄中的數據,並且每次啓動時都有數據,除非我在運行我的應用程序之前明確刪除它。

我很好奇啓動模擬器的時間。你能通過應用程序進行調試嗎? (是你花時間的代碼嗎?)

chris。

+0

嗨PyjamaSam。你可能是正確的,它重命名目錄(我剛剛看到了啓動應用程序時發生了什麼),但模擬器似乎在啓動階段正在處理文檔。例如,我的應用程序在Documents目錄中有一個3MB的sqlite文件和250 MB的照片。在啓動時,我的代碼對這些照片文件不做任何處理,但是對於SQL文件卻有點不同。但是,如果我從文檔目錄中刪除照片文件,它會立即啓動。將它們重新放置會在應用程序開始啓動之前導致10秒的延遲(只是旋轉的色輪) – Matt 2009-06-02 22:02:16

2

只需讓模擬器在第一次運行後打開。只需停止XCode中的程序而不關閉模擬器。因此,在下次測試啓動時,只需加載應用程序,而無需再次加載模擬器。

它真的爲我加速了。

相關問題