我有一个 Obj-C 对象,里面有很多方法。有时一个方法需要调用同一对象内的另一个方法。我似乎不知道如何让 C 方法调用 Obj-C 方法......
WORKS:Obj-C 方法调用 Obj-C 方法:
[self objCMethod];
WORKS:Obj-C 方法调用 C 方法:
cMethod();
不起作用:C 方法调用 Obj-C 方法:
[self objCMethod]; // <--- this does not work
最后一个示例导致编译器吐出此错误:
错误:“self”未声明(在此函数中首次使用)
两个问题。为什么 C 函数看不到“self”变量,即使它位于“self”对象内部,以及如何调用它而不导致错误?非常感谢您的帮助! :)
为了使其工作,您应该像这样定义 C 方法:
void cMethod(id param);
当你调用它时,这样调用它:
cMethod(self);
那么,你就可以写:
[param objcMethod];
In your cMethod
.
这是因为self
变量是自动传递给 Objective-C 方法的特殊参数。由于C方法不享受这个特权,如果你想使用self
你必须自己发送。
查看更多内容编程指南的方法实现部分.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)