Objective c 使用sqlite在XCode中进行空检测
我在这里写一些代码,我玩得很开心 我的数据库中有一个值,该值可以为null,作为其他数据的平均值,如果该数据尚未填充,则没有任何值可作为平均值 在我的查询中,有时会返回空值。通常存在的值是双精度的。所以我有Objective c 使用sqlite在XCode中进行空检测,objective-c,ios,xcode,sqlite,Objective C,Ios,Xcode,Sqlite,我在这里写一些代码,我玩得很开心 我的数据库中有一个值,该值可以为null,作为其他数据的平均值,如果该数据尚未填充,则没有任何值可作为平均值 在我的查询中,有时会返回空值。通常存在的值是双精度的。所以我有 NSNumber *num = [NSNumber numberWithDouble:sqlite3_column_double(compiledStatement,7)]; if (num == nil) { do something } else { do something
NSNumber *num = [NSNumber numberWithDouble:sqlite3_column_double(compiledStatement,7)];
if (num == nil) {
do something
}
else {
do something else
}
由于某种原因,它正在下降到0。当我记录它时,它是0,但使用终端,我可以确定我的查询(通过终端)返回的值为null
任何帮助都将不胜感激
谢谢大家 通过调用[NSNumber numberWithDouble:]您可以保证您得到一个NSNumber。如果要检查null,则必须单独执行,可能需要调用sqlite3\u column\u type()并检查SQLITE\u null。比如:
if ( sqlite3_column_type(compiledStatement, 7) != SQLITE_NULL )
{
NSNumber *num = [NSNumber numberWithDouble:sqlite3_column_double(compiledStatement,7)];
}
通过调用[NSNumber numberWithDouble:]您可以保证您可以获得一个NSNumber。如果要检查null,则必须单独执行,可能需要调用sqlite3\u column\u type()并检查SQLITE\u null。比如:
if ( sqlite3_column_type(compiledStatement, 7) != SQLITE_NULL )
{
NSNumber *num = [NSNumber numberWithDouble:sqlite3_column_double(compiledStatement,7)];
}
... 和@(sqlite3_column_double(compiledStatement,7))代码>可能是一种风格改进。但从语义上讲,这是完全一样的。。。。和@(sqlite3_column_double(compiledStatement,7))代码>可能是一种风格改进。但从语义上讲,这是完全一样的。