Исключение выдается с результатом SQLite из столбца со значением NULL - PullRequest
0 голосов
/ 10 марта 2010

при выборе столбца, который может содержать значение NULL, я получаю исключение для этого оператора.

self.DirectionFromCity = [NSString stringWithUTF8String:(char *)sqlite3_column_text(compiledStatement, 8)];

Как мне установить эти атрибуты, так как значения NULL в порядке для базы данных.

1 Ответ

3 голосов
/ 10 марта 2010

Согласно документации NSString выдает исключение, если байты равны нулю

Что вам нужно сделать, это проверить возвращаемое значение и создать строку, только если она не равна нулю

char *localityChars = sqlite3_column_text(compiledStatement, 8);

if (localityChars == nil) {
     self.DirectionFromCity = nil;
} else {
     self.DirectionFromCity = [NSString stringWithUTF8String: localityChars];
}

В ответ на комментарий ниже о повторном увеличении кода с дополнительной проверкой, вы можете уменьшить его, используя

self.DirectionFromCity = localityChars != nil?[NSString stringWithUTF8String: localityChars]:nil;

или используйте метод, который будет выполнять те же функции

self.DirectionFromCity = [self getSQLiteColumn:compiledStatement];
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...