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,然后执行另一次构建,应用程序无法从数据库加载任何数据,没有任何错误或任何内容,它只是无法在数据库中找到任何条目!
你有没有检查你的数据库? 转到Simulator文件夹中的项目(app)文件夹并打开DB(sqlite)文件。确认数据库中存在数据。 –
是的DB有数据,我更新了我的问题以显示一些进展。谢谢 – Eddie
当您重置模拟器上的内容和设置时,应用程序数据(和应用程序数据库)被删除。似乎您的应用无法在第一次加载时从服务器获取数据。 –