iPhone, sqlite3, как определить нулевую дату, получить ошибку при назначении NSString? - PullRequest
3 голосов
/ 29 сентября 2010

Это мой код

NSString *enddate = [[NSString alloc] initWithUTF8String:(char *)sqlite3_column_text(statement, 3)];                

Мне нужно иметь нулевые даты, но когда в эту строку передается нулевое значение, я получаю сообщение об ошибке

* Завершение работы приложения из-за необработанного исключения 'NSInvalidArgumentException', причина: '* - [NSPlaceholderString initWithUTF8String:]: NULL cString'

1 Ответ

13 голосов
/ 29 сентября 2010

Вы не можете инициализировать NSString объекты указателем NULL, поэтому просто проверьте это условие:

const char* date = (const char*)sqlite3_column_text(statement, 3);
NSString *enddate = date == NULL ? nil : [[NSString alloc] initWithUTF8String:date];
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...