iOS:如何在启用ARC的情况下转换为const char?

Pru*_*goe -2 casting const char ios

我有这个:

// Setup the SQL Statement and compile it for faster access
NSString *sqlStatement = @"SELECT * FROM nameList";

const char *sqlStatementC  = (const char* )sqlStatement;
Run Code Online (Sandbox Code Playgroud)

但ARC并不喜欢这样.有解决方法吗?

谢谢

小智 9

因为这绝对无效.sqlStatement是一个NSStringObjective-C对象.你不能简单地把它投射到const char *.您必须使用方法以C srting的形式访问其内容:

const char *sqlStatementC = [sqlStatement UTF8String];
Run Code Online (Sandbox Code Playgroud)

备注1:顺便说一句,这与ARC完全无关.

备注2:使用指针标记星号贴在变量名称上,而不是类型名称(即const char* sqlStatementC不是很好,const char *sqlStatementC更好).