ghi*_*boz 13 sqlite string iphone cstring deprecated
我使用此代码从sqlite数据库中读取数据:
keyFromSql = [NSString stringWithCString:(char *)sqlite3_column_text(preparedStatement, 1)];
Run Code Online (Sandbox Code Playgroud)
但是编译器给了我在标题中写的警告......那么,从sqlite中检索值的正确而不是弃用的方法是什么?
谢谢!
小智 26
+(id)stringWithCString:(const char *)cString encoding:(NSStringEncoding)enc
Run Code Online (Sandbox Code Playgroud)
我想你通常会使用NSUTF8StringEncoding,所以你的代码看起来像
keyFromSq1 = [NSString stringWithCString:(char *)sqlite3_column_text(preparedStatement, 1) encoding:NSUTF8StringEncoding];
Run Code Online (Sandbox Code Playgroud)
或者你可以使用
keyFromSq1 = [NSString stringWithUTF8String:(char *)sqlite3_column_text(preparedStatement, 1)];
Run Code Online (Sandbox Code Playgroud)
由于SQLite始终返回UTF-8*编码的字符串,您可以使用+stringWithUTF8String:.
const char* res = (const char*)sqlite3_column_text(preparedStatement, 1);
keyFromSql = [NSString stringWithUTF8String:res];
Run Code Online (Sandbox Code Playgroud)
(*或UTF-16,如果您使用sqlite3_column_text16)