1

我有一个具有“mConWifi”类对象的dylib。我有加载这个dylib并执行以下代码的主应用程序

Class klass = objc_getClass("mConWifi");
SEL sel = sel_getUid("ListAllWifi:");
if ( [klass respondsToSelector:sel] )
    objc_msgSend(klass, sel);

调用上述代码时,mConWifi 类的对象已经在内存中创建。

我的目标是根据类名获取对象,然后调用一个方法。使用上面的代码,我无法响应响应选择器失败。我已经尝试过“ListAllWifi”和“ListAllWifi:”

任何想法如何根据类名获取类的对象?

提前致谢。

4

1 回答 1

2

我认为您的问题是您正在尝试测试类的方法(用 声明+),但实际上您有一个实例方法,用 声明-

尝试这个:

Class klass = objc_getClass("mConWifi");
SEL sel = sel_getUid("ListAllWifi:");
if ( [klass instancesRespondToSelector:sel] ) {
    id object = [[klass alloc] init];
    objc_msgSend(object, sel);
}
于 2013-09-05T13:16:32.880 回答