核心数据:无法将数据插入表中,ios7

时间:2014-02-01 09:35:46

标签: objective-c core-data ios7

我正在尝试使用核心数据存储位置信息

这是我的代码

-(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并查看它时,我看不到任何数据。我可以看到表格在那里,但没有数据。

我首先想到的可能是我的字典是空的,所以我记录了它,但事实并非如此。

2 个答案:

答案 0 :(得分:0)

确保在该视图控制器中设置了managedObjectContext ...检查以确保它不是nil。

答案 1 :(得分:0)

如果您在iOS 7中测试此问题,则问题在于对sqlite文件进行日志记录。 SQLite写入在iOS 7中更改为日志模式,因此写入首先添加到辅助文件,然后稍后汇总。

如果在后续发布时,您在UI中看到了您的数据,则无需更改任何内容。