iOS越狱根据类名获取对象

标签 ios objective-c

我有一个 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/

相关文章:

iphone - Obj-C,如何处理包含 4 个部分的版本号?大于等

objective-c - CoreAnimation 未提交 CATransaction 警告

ios - 完成 block 中的 UIView 动画以位移开始

ios - Swift 中具有动态高度的 UITableView

ios - 如何使 UITabBarItem 成为来自 unicode 的图像?

ios - cocos2d中的交错 map 显示错误

iphone - NSString 中有setwidth 吗?

ios - 如何在所有设备中快速布局每行三个图像

ios - 核心图 : bring grid lines to the foreground?

objective-c - OSX SDK 上的文件管理器类?