2014-02-16 31 views
0

我正在使用coredata加載主要具有靜態數據的sqllite數據庫。我通過代碼確保sqlite數據庫存在,然後做一個CoreData,PersistentStore,不檢索任何數據

 NSFetchRequest *request = [[NSFetchRequest alloc] init]; 
     NSEntityDescription *e = [[model entitiesByName] objectForKey:@"Item"]; 
     [request setEntity:e]; 
     NSError *error; 

     // Here I never get any data 
     NSArray *result = [context executeFetchRequest:request error:&error]; 

     if (error) { 
     [NSException raise:@"Fetch failed" 
        format:@"Reason: %@", [error localizedDescription]]; 
     } 

然而,我從來沒有得到任何數據的數據庫!我也沒有得到任何錯誤,我得到的只是一個空數組。 我知道sqliteDB中有數據,可能會出錯?

更新: 因此,DB文件確實有值,但行爲不一致,它在第一次在模擬器中運行應用程序時正常工作,但如果我在模擬器上重置Content And Settings,然後執行另一次構建,應用程序無法從數據庫加載任何數據,沒有任何錯誤或任何內容,它只是無法在數據庫中找到任何條目!

+0

你有沒有檢查你的數據庫? 轉到Simulator文件夾中的項目(app)文件夾並打開DB(sqlite)文件。確認數據庫中存在數據。 –

+0

是的DB有數據,我更新了我的問題以顯示一些進展。謝謝 – Eddie

+0

當您重置模擬器上的內容和設置時,應用程序數據(和應用程序數據庫)被刪除。似乎您的應用無法在第一次加載時從服務器獲取數據。 –

回答

0

問題出在內部,我沒有正確加載數據。