我有一个dylib,它有一个类为"mConWifi"的对象。我有一个主应用程序,它加载这个dylib并执行以下代码
Class klass = objc_getClass("mConWifi");
SEL sel = sel_getUid("ListAllWifi:");
if ( [klass respondsToSelector:sel] )
objc_msgSend(klass, sel);
当调用上述代码时,类mConWifi的对象已经在Memory中创建。
我的目标是根据类名获取对象,然后调用一个方法。使用上面的代码,我无法响应ToSelector失败。我已经尝试过"ListAllWifi"one_answers"ListAllWifi:"
你知道如何根据类名获取类的对象吗?
提前谢谢。
我认为您的问题是试图测试类的方法(用+
声明),但实际上您有一个用-
声明的实例方法。
试试这个:
Class klass = objc_getClass("mConWifi");
SEL sel = sel_getUid("ListAllWifi:");
if ( [klass instancesRespondToSelector:sel] ) {
id object = [[klass alloc] init];
objc_msgSend(object, sel);
}