Objective c 使用sqlite在XCode中进行空检测

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

我在这里写一些代码,我玩得很开心

我的数据库中有一个值,该值可以为null,作为其他数据的平均值,如果该数据尚未填充,则没有任何值可作为平均值

在我的查询中,有时会返回空值。通常存在的值是双精度的。所以我有

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))可能是一种风格改进。但从语义上讲,这是完全一样的。