iPhone stringWithCString is deprecated
+(id)stringWithCString:(const char *)cString encoding:(NSStringEncoding)enc
I think you'll typically use NSUTF8StringEncoding, so your code would look like
keyFromSq1 = [NSString stringWithCString:(char *)sqlite3_column_text(preparedStatement, 1) encoding:NSUTF8StringEncoding];
Alternatively you can use
keyFromSq1 = [NSString stringWithUTF8String:(char *)sqlite3_column_text(preparedStatement, 1)];
Since SQLite always return UTF-8* encoded strings, you could just use +stringWithUTF8String:
.
const char* res = (const char*)sqlite3_column_text(preparedStatement, 1);keyFromSql = [NSString stringWithUTF8String:res];
(* or UTF-16, if you use sqlite3_column_text16
)
[[NSString alloc] initWithBytes:bytes length:count encoding:NSUTF8StringEncoding]
is preferred to stringWithCString:encoding:
Apple's Document's recommendation is not very OK, because the original method "doesn’t stop short at a NULL character."