我有一个应用程序,它提供了一个预先填充的sqlite数据库,用户可以在以后进行扩展。当我构建数据库时,我进行了设置,以便值必须是浮点数(NSNumber包含浮点数)。在数据库的某些“单元格”上没有任何价值,所以我没有填写它。
但是,当我使用Firefox扩展浏览sqlite Db时,我会看到以下内容:
我没有填充的“细胞”是蓝色的。根据firefox扩展设置,蓝色“单元格”表示字符串。红色表示nil / null。
我正在尝试获取特定属性的值,过滤那些“字符串”并执行以下操作:
Entity *entity = [[self.managedObjectContext executeFetchRequest:request error:&error] objectAtIndex:0];
[entity setValue:nil forKey:@"attribute"]; // I would do a loop for all the items in the array
但是,我找不到获取那些似乎是字符串的值的方法。我唯一能做的就是选择浮点值为0的所有那些,但问题是实际上有0的值,实际上它有意义。
关于如何做到这一点的任何想法?
如果我取的所有东西都不是零,那么它们就在那里。所以他们不被视为无效。
答案 0 :(得分:1)
CoreData不是数据库。它是一个对象图关系管理器。您正在尝试进行数据库操作,但它无法正常工作。如果需要直接修改数据库,则需要使用实际的数据库工具,如SQLite库(或sqlite3
CLI工具)。