簡體   English   中英

iPhone:我是否應該將數據從應用程序捆綁包移至文檔目錄?

[英]iPhone: Should I move data from the application bundle to the documents directory?

我注意到在CoreDataBooks示例中,如果該目錄中不存在默認數據庫,則會將其復制到documents目錄:

if (![fileManager fileExistsAtPath:storePath]) {
    NSString *defaultStorePath = [[NSBundle mainBundle] pathForResource:@"CoreDataBooks" ofType:@"sqlite"];
    if (defaultStorePath) {
        [fileManager copyItemAtPath:defaultStorePath toPath:storePath error:NULL];
    }
}

我的問題是,這會占用兩倍的空間嗎?
即現在有2個數據庫,一個在捆綁包中,一個在documents文件夾中。

我有一個更大的數據庫和一堆總計約50mb的圖像。 是否有另一種方法可以執行此操作而不復制數據?

在示例中,此操作已完成,因此存在要寫入的默認文件。 如果不這樣做,則必須使用代碼創建文件。 這樣做的原因是因為該應用程序包位於禁止寫入的沙盒中。

如果您需要數據庫可編輯,則必須將其移至應用程序包之外。

AFAIK,Apple強烈建議不要修改捆綁軟件中的文件。 因此,如果數據是只讀的(例如,很可能是您的圖像),則可以將其保留在捆綁包中。 可變數據庫是另一回事。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM