2

Core Data現在のアプリケーションで、アプリケーションの起動時にデータベースが既に開いているかどうかをチェックするコードのセクションを見てきました。データベースは単一のアプリ (および単一のユーザー) によってのみアクセスされるため、別のソースから開くことはできません。確かにわからないことの 1 つは、アプリケーションが予期せず終了した場合、これが発生したときにデータベースが閉じられるかどうかです。

シングルユーザーシステムで、ユーザーがアプリケーションを開始し、データベースがすでに開いている状況があり得るかどうかを尋ねていると思いますか? テストでは、「既に開いている」コードが呼び出されるのを見たことがないので、それが必要かどうか知りたいですか?

4

1 に答える 1

1

iOS (シングルユーザーアプリが一度にアクティブな OS として) では、アプリはデータベースを「開いて」「閉じる」ものです。

アプリが予期せず終了した場合、その時点でアプリが保持していなかったすべての変更が失われます。指示しない限り、アプリは DB を開きません (つまり、NSPersistantStorageController とコンテキストを設定することによって)。

「既に開いている」コードは、アプリ内からさまざまな段階で DB を開くことができる場合に役立ちます。したがって、開く場所が 1 つしかない場合は、コードは必要ありません。痛くはないですけどね。

デバッグ中に sqlite データベース ブラウザーや Liya などを使用して DB を監視しているときに、ブラウザーがストアへの更新をブロックしている場合に、よく気がつくことがあります。しかし、それは通常の使用時ではなく、デバッグ中です。

于 2012-09-12T08:48:59.513 に答える