0

一部のベータ テスターで次のエラーが発生していますが、これが発生している理由の手がかりを見つけることができませんでした。

管理対象オブジェクト ストアは永続ストア コーディネータを作成できませんでした:

Error Domain=NSCocoaErrorDomain Code=256 "The operation couldn’t be completed. 
(Cocoa error 256.)" UserInfo=0x1f5cd8b0 
{NSUnderlyingException=authorization denied, NSSQLiteErrorDomain=23}

これは、ロケーション イベントによりアプリがバックグラウンドで起動された後、 を呼び出したときに発生しますaddPersistentStoreWithType。これは私がオプションを渡す方法です:

NSDictionary *persistentStoreOptions = [NSDictionary 
   dictionaryWithObjectsAndKeys:
      NSFileProtectionNone, NSPersistentStoreFileProtectionKey, nil];
NSError *error;
if (![_persistentStoreCoordinator 
      addPersistentStoreWithType:NSSQLiteStoreType 
                   configuration:nil 
                             URL:storeURL 
                         options:persistentStoreOptions 
                           error:&error]) {
...
}

これが一部のインストールでのみ発生する理由とその背後にある理由についての手がかりはありますか?

4

1 に答える 1

1

複数のスレッドで Core Data を使用していますか? これらのユーザーが複数の NSPersistentStoreCoordinator インスタンスを取得してはならないのに取得する可能性はありますか? 以前、特に低速のデバイスでこの問題を見たことがありますが、永続ストア コーディネーターの「遅延インスタンス化」を制御するコードが本来あるべきほどスレッド セーフではないことが判明しました。

于 2012-12-10T21:18:00.700 に答える