我使用此代码从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
)