Я использую этот код для чтения данных с sqlite базы данных:
keyFromSql = [NSString stringWithCString:(char *)sqlite3_column_text(preparedStatement, 1)];
но компилятор дает мне, предупреждение записало в заголовке... так, каково право и не устаревший метод получить значение от sqlite?
спасибо!
+(id)stringWithCString:(const char *)cString encoding:(NSStringEncoding)enc
Я думаю, вы обычно используете NSUTF8StringEncoding, поэтому ваш код будет выглядеть как
keyFromSq1 = [NSString stringWithCString:(char *)sqlite3_column_text(preparedStatement, 1) encoding:NSUTF8StringEncoding];
В качестве альтернативы вы можете использовать
keyFromSq1 = [NSString stringWithUTF8String:(char *)sqlite3_column_text(preparedStatement, 1)];
Поскольку SQLite всегда возвращает строки в кодировке UTF-8 *, вы можете просто использовать + stringWithUTF8String:
.
const char* res = (const char*)sqlite3_column_text(preparedStatement, 1);
keyFromSql = [NSString stringWithUTF8String:res];
(* или UTF-16, если вы используете sqlite3_column_text16
)