我有一个 dylib,它有一个类“mConWifi”的对象。我有加载此 dylib 并执行以下代码的主应用程序
Class klass = objc_getClass("mConWifi");
SEL sel = sel_getUid("ListAllWifi:");
if ( [klass respondsToSelector:sel] )
objc_msgSend(klass, sel);
调用上述代码时,mConWifi 类的对象已经在内存中创建。
我的目标是根据类名获取对象,然后调用一个方法。使用上面的代码我无法作为 respondsToSelector 失败。我已经尝试过“ListAllWifi”和“ListAllWifi:”
关于如何根据类名获取类的对象有什么想法吗?
提前致谢。
最佳答案
我认为你的问题是你正在尝试测试类的方法(用 +
声明),但实际上你有一个实例方法,用 -
声明.
试试这个:
Class klass = objc_getClass("mConWifi");
SEL sel = sel_getUid("ListAllWifi:");
if ( [klass instancesRespondToSelector:sel] ) {
id object = [[klass alloc] init];
objc_msgSend(object, sel);
}
关于iOS越狱根据类名获取对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18636976/