【问题标题】:Call Objective-C object method from C function [duplicate]从C函数调用Objective-C对象方法[重复]
【发布时间】:2014-11-13 07:11:36
【问题描述】:

我确实有一个objective-c 对象myObject。 在这个对象中,我确实有一些 C 函数。

静态 void C_doThing(void) { ... }

在 myObject 中,我可以调用 C_doThing() 并调用该函数。 现在我想从这个 C 函数中调用 myObject 的一个方法。

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

谢谢

【问题讨论】:

  • 相反,您的对象中没有 C 函数。它们只是在同一个编译单元中。

标签: objective-c c function methods


【解决方案1】:

没有; C 函数只是一个普通的 C 函数,恰好在您的 .m 文件中定义,但它实际上并不是对象(类)的“一部分”。它恰好被困在同一个文件中。

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

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

(使用仅在单个类实现中使用的实用 C 函数可能有少数很好的案例,但它们非常罕见,通常围绕严重的性能优化。)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-11-06
    • 1970-01-01
    • 2023-03-29
    • 2013-12-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多