2013-05-15 46 views
2

我創建一個持久存儲區協調員這樣的:無法保存核心數據管理對象上下文時設備密碼鎖定

NSURL *storeURL = [[self applicationDocumentsDirectory] URLByAppendingPathComponent:@"Mydatabase.sqlite"]; 
NSError *error = nil; 
__persistentStoreCoordinator = [[NSPersistentStoreCoordinator alloc] initWithManagedObjectModel:[self managedObjectModel]]; 
     if (![__persistentStoreCoordinator addPersistentStoreWithType:NSSQLiteStoreType configuration:nil URL:storeURL options:nil error:&error]) 

的問題是,只要我發出了一個節省任何託管對象上下文它失敗,出現以下錯誤:

May 15 17:46:18 xx-iPad @WorkMail[2807] <Warning>: Core Data: annotation: -executeRequest: encountered exception = Updating max pk failed: with userInfo = { 
     NSSQLiteErrorDomain = 14; 
    } 
May 15 17:46:18 xx-iPad @WorkMail[2807] <Warning>: Core Data: annotation: -executeRequest: encountered exception = Updating max pk failed: with userInfo = { 
     NSSQLiteErrorDomain = 14; 
    } 
May 15 17:46:18 xx-iPad @WorkMail[2807] <Warning>: Core Data: annotation: -executeRequest: encountered exception = Updating max pk failed: with userInfo = { 
     NSSQLiteErrorDomain = 14; 
    } 

這是一個錯誤,另外erorr是授權拒絕錯誤錯誤21。

當密碼鎖定未啓用時,不會發生。我正在使用單個持久存儲協調器從後臺線程寫入核心數據。

+0

我已經弄清楚這是什麼。這個問題不是核心數據問題,而是當啓用密碼鎖時,數據保護被啓用到最大級別,從而防止寫入應用程序文檔目錄中的任何文件。該問題是由另一位團隊成員更改應用ID引起的。因此,如果您點擊此選項,請檢查您的應用ID和開發者證書屬性 – Lee

+1

嘿@Lee!考慮發佈這個[回答你自己的問題](http://blog.stackoverflow.com/2009/01/accept-your-own-answers/)。 – steveluscher

回答

1

我已經弄清楚這是什麼。這個問題不是核心數據問題,而是當啓用密碼鎖時,數據保護被啓用到最大級別,從而防止寫入應用程序文檔目錄中的任何文件。該問題是由另一位團隊成員更改應用ID引起的。因此,如果您點擊此選項,請檢查您的應用ID和開發者證書屬性

+0

您可以讓我們知道什麼是appid和證書的依賴關係,因爲我想在設備被鎖定時在覈心數據中寫入數據。請讓我知道如何解決這個問題,謝謝 – Siddh

相關問題