我有這樣的:iOS:如何在啓用ARC的情況下將其轉換爲const char?
// Setup the SQL Statement and compile it for faster access
NSString *sqlStatement = @"SELECT * FROM nameList";
const char *sqlStatementC = (const char*)sqlStatement;
但ARC不喜歡這一點。有沒有解決方法?
謝謝
我有這樣的:iOS:如何在啓用ARC的情況下將其轉換爲const char?
// Setup the SQL Statement and compile it for faster access
NSString *sqlStatement = @"SELECT * FROM nameList";
const char *sqlStatementC = (const char*)sqlStatement;
但ARC不喜歡這一點。有沒有解決方法?
謝謝
用途:
const char* sqlStatementC = [sqlStatement cStringUsingEncoding:NSUTF8StringEncoding];
或
const char* sqlStatementC = [sqlStatement UTF8String];
因爲這是絕對無效的。 sqlStatement是一個NSString
,一個Objective-C對象。你不能簡單地將它投射到const char *
。你必須使用一種方法來訪問它的內容作爲C srting:
const char *sqlStatementC = [sqlStatement UTF8String];
備註1:順便說一下,這是完全無關ARC。備註2:使用指針標記星號粘貼變量名稱,而不是類型名稱(即const char* sqlStatementC
不是很好,const char *sqlStatementC
更好)。
感謝您的幫助。 – PruitIgoe
從SO準則:「[...]你應該接受最好的答案**,或者如果有相同的答案,第一個**」 – 2012-06-18 13:40:06
是的,標記@ H2CO3的答案被接受...... – graver