簡體   English   中英

iOS如何做預先填充的Core數據?

[英]iOS how to do pre-filled Core data?

我需要我的申請工作如下:

1-用戶下載並啟動應用程序。

2-應用程序將自動使用特定記錄填充(基於核心數據)。 3-該應用程序將正常工作。

4-用戶關閉應用程序並重新啟動時。

5_應用程序不會自動使用特定記錄填充核心數據,因為它已經存在。

6-用戶將無法添加/刪除/更新數據。

是否有一種很好的技術可以僅使用核心數據並被Apple接受。

  1. 填充模擬器中的數據
  2. 從模擬器文件夾中復制SQLITE數據庫
  3. 將數據庫作為資源添加到項目中。
  4. 在初始化Core Data堆棧之前執行類似的操作:

碼:

// Put down default db if it doesn't already exist
NSFileManager *fileManager = [NSFileManager defaultManager];
if (![fileManager fileExistsAtPath:storePath]) {
    NSString *defaultStorePath = [[NSBundle mainBundle] 
                                  pathForResource:@"MyDataFile" ofType:@"sqlite"];
    if (defaultStorePath) {
        [fileManager copyItemAtPath:defaultStorePath toPath:storePath error:NULL];

    }
}

未顯示,但很關鍵:您預填充數據的所有文件必須標記為“不備份”,否則您將被拒絕,符合App Store指南。 有關如何執行此操作的詳細信息,請參閱此SO問題: 為什么在使用此代碼從iCloud備份中排除文件后,我的應用程序仍然被拒絕?

我可以告訴你一個非常簡單的方法。 在app delegate中,在NSUserDefaults中創建一個變量,並在第一次加載應用程序時更改其值。 然后,根據NSUserDefaults的值,在Core Data存儲中填充所需的數據。 這只會發生一次,因為NSUserDefaults變量的值不會再次改變。

暫無
暫無

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

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