我确实有一个 Objective-C 对象 myObject。 在这个对象中我确实有一些 C 函数。
静态无效C_doThing(无效){ ... }
在 myObject 中,我只需调用 C_doThing() 即可调用该函数。 现在我想从此 C 函数调用 myObject 的方法。
有办法做到这一点吗? “Self”在 C 函数内部不可用。
谢谢
最佳答案
没有; C 函数只是一个简单的 C 函数,恰好在 .m 文件中定义,但它实际上并不是对象(类)的“一部分”。它只是恰好卡在同一个文件中。
您可以将对象(调用者中的 self
)作为参数传递给函数,然后调用它的方法。
但是您可能应该将其变成普通的实例方法。您已将其定义为static
,这意味着它在文件外部不可见。如果是这样,那为什么不把它变成一个方法呢?
(可能有少数使用实用程序 C 函数的好案例,这些函数仅在单个类实现中使用,但它们非常罕见,并且通常围绕严重的性能优化。)
关于objective-c - 从 C 函数调用 Objective-C 对象方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25921233/