iPhone stringWithCString удерживается от использования

Я использую этот код для чтения данных с sqlite базы данных:

keyFromSql = [NSString stringWithCString:(char *)sqlite3_column_text(preparedStatement, 1)];

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

спасибо!

13
задан ghiboz 24 July 2010 в 06:49
поделиться

2 ответа

+(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)];
26
ответ дан 1 December 2019 в 19:58
поделиться

Поскольку SQLite всегда возвращает строки в кодировке UTF-8 *, вы можете просто использовать + stringWithUTF8String: .

const char* res = (const char*)sqlite3_column_text(preparedStatement, 1);
keyFromSql = [NSString stringWithUTF8String:res];

(* или UTF-16, если вы используете sqlite3_column_text16 )

5
ответ дан 1 December 2019 в 19:58
поделиться
Другие вопросы по тегам:

Похожие вопросы: