gpt4 book ai didi

objective-c - 纯 C 函数调用 Objective-C 方法?

转载 作者:太空狗 更新时间:2023-10-30 03:52:35 24 4
gpt4 key购买 nike

好吧,我已经阅读了六个关于这个主题的主题,但似乎没有一个解决方案能够满足确切的需求。

问题:

纯 C (.c) 函数如何调用纯 Objective-C (.m) 类中的方法?

每个示例/答案都在 Objective-C (.m) 方法中使用 C。我有一个纯 C 库,我必须为其创建一个模拟器,所以我需要将我的内核保持在纯 C 中,并调用我在 Objective-C 中的更高级别的仿真方法。

我为创建引用和调用方法所做的任何尝试都失败了。方括号符号也失败了。在 Obj-C 中创建一个全局变量并尝试在 Pure-C 中使用它是行不通的,就好像命名空间是隔离的一样。

有人做过吗?

这是流程图:

Obj-C UIButton CLICKED->调用 Obj-C 方法->调用 C 函数->调用 Obj-C 方法

最佳答案

经过多次试验,我发现解决问题的最优雅方法是使用 .m 后缀将我的核心 C 库转换为 NSObject。来回调用的方法瞬间解决。此更改确实改变了我的原始库,但变化很小,是可以管理的。所以回顾一下:

我原来的 C 文件被重命名为使用 .m 后缀。然后我添加了

@interface myCLibrary : NSObject

@end

到我的 .h 文件,并添加到我以前的 .c 文件,现在重命名为 .m。

@implementation myCLibrary

@end

请记住,不要将 C 函数粘贴在这些接口(interface)/实现声明之间的下方。只有 Objective-C 会进入这些语句。一旦我这样做了,调用 C 函数并调用 BACK 到其他 C 函数就非常有效。

无论如何,感谢所有帮助。

关于objective-c - 纯 C 函数调用 Objective-C 方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20419042/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com