3

次のようにアプリケーションの作業が必要です。

1- ユーザーがアプリケーションをダウンロードして起動します。

2- アプリケーションは、(ベースのコア データ) に特定のレコードを自動的に入力します。3- アプリケーションは問題なく動作します。

4- ユーザーがアプリケーションを閉じて再起動したとき。

5_ アプリケーションは、特定のレコードが既に存在するため、コア データに特定のレコードを自動的に入力しません。

6- ユーザーはデータを追加/削除/更新できなくなります。

コアデータのみを使用し、Apple によって承認された、それを行うための優れた手法はありますか。

4

2 に答える 2

4
  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];

    }
}

表示されていませんが、重要です。データを事前入力するすべてのファイルは、「バックアップしない」とマークする必要があります。そうしないと、AppStoreのガイドラインに従って拒否されます。これを行う方法の詳細については、このSOの質問を参照してください。このコードを使用してiCloudバックアップからファイルを除外した後も、アプリケーションが拒否されたのはなぜですか?

于 2012-07-04T17:14:50.477 に答える
3

それを行うための非常に簡単な方法を 1 つお伝えできます。アプリ デリゲートで、NSUserDefaults に変数を作成し、アプリケーションが初めて読み込まれるときにその値を変更します。次に、NSUserDefaults の値に応じて、コア データ ストアに必要なデータを入力します。NSUserDefaults 変数の値が再び変更されることはないため、これは一度だけ発生します。

于 2012-07-04T17:02:46.287 に答える