2014-09-18 56 views
0

我确实有一个Objective-c对象myObject。 在这个对象里面我确实有一些C函数。从C函数调用Objective-C对象方法

静态无效C_doThing(无效){ ... }

里面myObject的我可以叫C_doThing()和函数被调用。 现在我想从这个C函数调用一个myObject的方法。

有没有办法做到这一点? “自我”在C函数中不可用。

谢谢

+1

金恰恰相反,你在你的对象中没有C函数。它们只是在同一个编译单元中。 – 2014-09-18 19:58:49

回答

0

不; C函数只是一个简单的C函数,它恰好在.m文件中定义,但实际上并不是对象(类)的“部分”。它恰好卡在同一个文件中。

您可以将该对象(调用者中的self)作为参数传递给该函数,然后调用它的方法。

但你应该把它变成一个普通的实例方法。您已将其定义为static,这意味着它在文件外部没有可见性。如果是这样的话,为什么不把它变成一种方法?

(有可能是很好的情况下,使用那些只使用在单一类实现实用的C函数一个小数目,但他们是非常罕见的,通常各地严重的性能优化。)