【发布时间】:2012-10-10 02:38:03
【问题描述】:
我正在循环访问从 SQLite3 数据库生成的 FMDB 结果集,创建对象以供以后使用。 数据内容由各种用户使用各种文本编辑器和编码创建。
一些记录有问题,列值返回 nil,即使列中有文本。
例如,当我运行命令行查询时,我看到了数据库中列的文本,但 FMDB 方法 stringForColumn 返回 nil。我还看到潜在的原因是列内容中的高 ascii 字符,这很可能是用户从 MS Word 复制和粘贴文本到达那里的。我的问题是处理这种类型的“脏”数据的最佳方法是什么,意识到某些数据可能在具有这些字符的数据库中?
NSMutableDictionary *words = [[NSMutableDictionary alloc] init];
FMResultSet *rs = [db executeQuery:@"SELECT * FROM `foo` WHERE 1"];
while ([rs next]) {
Word *myWord = [[Word alloc] init];
//Coming in as a nil value eventhough there is text in the database column
[myWord setDefinition:[rs stringForColumn:@"definition"]];
[words setObject:[myWord definition] forKey:[myWord term]];
}
【问题讨论】:
标签: ios nsmutabledictionary fmdb