2014-02-16 29 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

问题出在内部,我没有正确加载数据。