Objective c 选择器/方法名称作为字符串参数

Objective c 选择器/方法名称作为字符串参数,objective-c,ios,ios6,Objective C,Ios,Ios6,因此,该代码起作用(将方法名称作为字符串发送给接收方法) 然而,由于ios 6(我想)我现在得到了一个警告 Format指定类型“char*”,但参数的类型为SEL SEL是否有格式说明符? 执行此操作的正确方法是什么(以便没有警告)?您可以使用NSStringFromSelector: [self.Client sendDigitalJoinAndReleaseByName:NSStringFromSelector(_cmd)]; 只需使用NSStringFromSelector(_cmd)

因此,该代码起作用(将方法名称作为字符串发送给接收方法)

然而,由于ios 6(我想)我现在得到了一个警告

Format指定类型“char*”,但参数的类型为SEL

SEL是否有格式说明符?
执行此操作的正确方法是什么(以便没有警告)?

您可以使用NSStringFromSelector:

[self.Client sendDigitalJoinAndReleaseByName:NSStringFromSelector(_cmd)];

只需使用NSStringFromSelector(_cmd)并打印结果

我注意到有一个运行时函数:
constchar*sel\u getName(sel-aSelector)
。我没有用过它…为什么不传递
SEL
而不是将其格式化为字符串?什么是_cmd?函数参数的类型是什么?请注意,
\uuu PRETTY\u function\uuu
的作用并不完全相同:它返回这个函数的(格式良好的)名称,而不是任何任意函数的名称。@bdesham指出这一点很好,我包含它的唯一原因是基本上指出它的存在,但我的措辞让它听起来像是在比较两者。移除。
[self.Client sendDigitalJoinAndReleaseByName:NSStringFromSelector(_cmd)];