dlsym是不是不能导出dylib 里的oc方法?

大家好
请问一个关于动态加载dylib的问题

我现在自己编写了一个dylib提供了一些类方法供我程序调用,原来我是用xcode直接加载的,现在我需要改成动态加载,用dlopen可以获取到我的/usr/lib/下的lib.dylib 的指针。
void *handle = dlopen("/usr/lib//libMySetting.dylib", RTLD_LAZY);
void *fun = dlsym(handle, "open:withNum:");
handle指针获取到
但是fun却返回为空。
google了很多文章,好像dlsym都是用来导入c函数的,没看见如何动态加载dylib然后导入oc函数的。

thx

动态调用OC方法的话用performSelector系列

狗神把解决方案说的很清楚了。我来说说你的方案为什么错了。
dlsym用的参数是符号名而不是selector,符号名可以从符号表查找。指令是nm PATH/TO/BINARY
比如
0016c8fc t -[NetConnectData SetDevToken:]

感谢解惑,也感谢狗神,其实只要知道符号名,也是可以调用oc函数的吧。以前没深入了解过selector,看来还要对oc深入学习

倒是没有试过用符号表调用oc函数

有研究出来吗?

自己研究了番,有问题可以交流 iOS dlopen 动态加载Frameworks - 简书