Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/113.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 释放可为[NSNull]或不可为[NSNull]的对象_Ios_Memory Management_Null_Crash - Fatal编程技术网

Ios 释放可为[NSNull]或不可为[NSNull]的对象

Ios 释放可为[NSNull]或不可为[NSNull]的对象,ios,memory-management,null,crash,Ios,Memory Management,Null,Crash,我有一个内存管理问题,我无法在iOS上动脑。我从SQLite数据库中获取数据,其中一些单元格可以是空的。因此,为了处理这种情况,如果为空,我将[NSNull null]分配给我的收件人,如果为空,则分配值: NSString *email = (const char *) sqlite3_column_text(statement, 6) == NULL ? [NSNull null] : [[NSString alloc] initWithUTF8String:(const char *) s

我有一个内存管理问题,我无法在iOS上动脑。我从SQLite数据库中获取数据,其中一些单元格可以是空的。因此,为了处理这种情况,如果为空,我将[NSNull null]分配给我的收件人,如果为空,则分配值:

NSString *email = (const char *) sqlite3_column_text(statement, 6) == NULL ? [NSNull null] : [[NSString alloc] initWithUTF8String:(const char *) sqlite3_column_text(statement, 6)];
但如果我这样做:

[email release];
分析器不喜欢它,我认为当对象实际为[NSNull]时,它会使我的程序崩溃

所以我试过:

(id) email == [NSNull null] ? nil:[email release];
但它不工作(仍然崩溃,分析仪不喜欢它)。有什么想法吗


提前感谢

我在这种情况下使用的是
nil
值。例如:

NSString *email = (const char *) sqlite3_column_text(statement, 6) == NULL ? nil : [[NSString alloc] initWithUTF8String:(const char *) sqlite3_column_text(statement, 6)];

在这种情况下,您可以安全地拨打
[电子邮件发布];//电子邮件可以是NSString或nil
,所有内容都可以根据您的需要使用。

谢谢,nil确实可以发布。然而,我发现您可以告诉SQLite在一个空单元格中放置什么值,所以我只选择放置一个空字符串而不是C NULL。为我保存一些代码!