Вы должны получить количество возвращаемых столбцов, прежде чем пытаться получить доступ к значению столбца.
int count = sqlite3_column_count (statement);
При вызове sqlite3_column_int () возвращается целочисленное значение столбца.Что если это значение равно нулю?Вы не можете определить разницу между действительным нулевым результатом и нулевым значением для этого столбца.Вы можете проверить, имеет ли столбец значение NULL, с помощью
sqlite3_column_type () == SQLITE_NULL;
Кроме того, Obj-C не выполняет автоматическое преобразование различных типов, поэтому numberWithInt: sqlite3_column_text
, конечно же, выдаст результаты мусора.Что возвращает sqlite3_column_text (), так это указатель на строку C, которая является адресом в памяти, где находится строка.Я предполагаю, что вы ожидаете, что это каким-то образом преобразует строку в целое число?Этого не происходит в C.