1

我从 sqlite 得到一个结果集,看起来像这样:

Null, 23, 34, 45(被(比如说)4个项目返回)

空值是正确的 - 但是当我尝试使用以下代码将它添加到 Objective-c 中的数组时,我收到一个错误 - Null cstring - 这是我的代码:

[数组 addObject:[NSString stringWithUTF8String:(char *)sqlite3_column_text(statement, 0)]];

在将 null 添加到数组并将其替换为零之前,我尝试对 null 进行了失败的测试,但到目前为止还没有成功。

有人可以帮我处理空值,这样我就可以在数组中添加一个零。

谢谢你的帮助。

4

2 回答 2

2

正如 Hot Licks 所说,检查返回值并添加从中创建的字符串,或者添加[NSNull null].

const unsigned char *column0 = sqlite3_column_text(statement, 0);
if (column0)
    [array addObject:[NSString stringWithUTF8String:(const char *)column0]];
else
    [array addObject:[NSNull null]];
于 2013-11-06T23:35:01.803 回答
1

按照建议处理 null 是一个不错的选择。

您还可以修改查询以强制列始终TEXT使用CAST(column_name AS TEXT),或强制使用 NULL 来清空字符串COALESCE(column_name, '')

于 2013-11-07T03:30:08.770 回答