我正在尝试使用核心数据存储位置信息
这是我的代码
-(void)saveCity:(NSDictionary *)dict{
[self.progressLabel setText:@"Saving current location in the database "];
NSEntityDescription *entitydesc = [NSEntityDescription entityForName:@"Location" inManagedObjectContext:context];
NSManagedObject *newLocation = [[NSManagedObject alloc]initWithEntity:entitydesc insertIntoManagedObjectContext:context];
NSLog(@"saving city:%@", dict);
[newLocation setValue:[dict objectForKey:@"country"] forKey:@"country"];
[newLocation setValue:[dict objectForKey:@"current"] forKey:@"current"];
[newLocation setValue:[dict objectForKey:@"name"] forKey:@"name"];
[newLocation setValue:[dict objectForKey:@"timediff"] forKey:@"timediff"];
[newLocation setValue:[dict objectForKey:@"latitude"] forKey:@"latitude"];
[newLocation setValue:[dict objectForKey:@"longitude"] forKey:@"longitude"];
NSError *error;
[context save:&error];
}
应该可以工作但是当我进入我的模拟器的.sqlite并查看它时,我看不到任何数据。我可以看到表格在那里,但没有数据。
我首先想到的可能是我的字典是空的,所以我记录了它,但事实并非如此。
答案 0 :(得分:0)
确保在该视图控制器中设置了managedObjectContext ...检查以确保它不是nil。
答案 1 :(得分:0)
如果您在iOS 7中测试此问题,则问题在于对sqlite文件进行日志记录。 SQLite写入在iOS 7中更改为日志模式,因此写入首先添加到辅助文件,然后稍后汇总。
如果在后续发布时,您在UI中看到了您的数据,则无需更改任何内容。