文档章节

respondsToSelector 和 method_exchangeImplementations 审核不过

赵大财
 赵大财
发布于 2017/05/03 16:07
字数 209
阅读 170
收藏 0

1   用不用的话 你自己看

    NSLog(@"%d",[Test instancesRespondToSelector:@selector(objectFun)]);
    NSLog(@"%d",[Test instancesRespondToSelector:@selector(classFun)]);
    NSLog(@"%d",[Test respondsToSelector:@selector(objectFun)]);
    NSLog(@"%d",[Test respondsToSelector:@selector(classFun)]);
    
    
    Test *obj = [[Test alloc] init];
    NSLog(@"%d",[obj respondsToSelector:@selector(objectFun)]);
    NSLog(@"%d",[obj respondsToSelector:@selector(classFun)]);
    NSLog(@"%d",[obj.class instancesRespondToSelector:@selector(objectFun)]);
    NSLog(@"%d",[obj.class instancesRespondToSelector:@selector(classFun)]);

2:用不用的话 你自己看


+ (void)exchangeMethod:(Method)originalMethod swapMothod:(Method)swapMothod
{
    IMP originalImp = method_getImplementation(originalMethod);
    IMP swapImp = method_getImplementation(swapMothod);
    method_setImplementation(originalMethod, swapImp);
    method_setImplementation(swapMothod, originalImp);
}

3 :这个没找到替代的方法 但是可能有人不知道是干嘛的 送个DEMO

- (int) getSignalLevel
{
    void *libHandle = dlopen("/System/Library/Frameworks/CoreTelephony.framework/CoreTelephony",RTLD_LAZY);//获取库句柄
    if (!libHandle) {
        NSLog(@"Unable to open library: %s\n", dlerror());
        return 1;
    }
    int (*CTGetSignalStrength)(); //定义一个与将要获取的函数匹配的函数指针
    CTGetSignalStrength = (int(*)())dlsym(libHandle,"CTGetSignalStrength"); //获取指定名称的函数
    
    if(CTGetSignalStrength == NULL)
        return -1;
    else{
        int level = CTGetSignalStrength();
        dlclose(libHandle); //切记关闭库
        return level;
    }  
}


 

 

© 著作权归作者所有

共有 人打赏支持
赵大财
粉丝 22
博文 162
码字总数 38743
作品 0
长沙
私信 提问
iOS 审核之 Performance - 2.5.2 被拒 dlopen(), dlsym(), respondsToSelector:, performSelector

现象 问题 前段时间界内掀起一阵热更新浪潮,然后苹果大大就发火了,然后呢... 所有包含下载远程脚本、动态加载其他库这种操作嫌疑的App都被警告了。 本以为自己App内没有上面这种东西,可以...

ziyuzhiye
2017/10/31
0
0
苹果说对于我应用程序的用户是一个严重的安全漏洞。老哥帮忙瞅下,谢谢

This includes any code which passes arbitrary parameters to dynamic methods such as dlopen(), dlsym(), respondsToSelector:, performSelector:, method_exchangeImplementations(), a......

Zoomking
2017/09/20
112
3
ios审核被拒,请教ios的各位朋友帮帮忙,实在不知道什么原因

Thank you for resubmitting your app. We have continued the review and would like to provide our findings. We still find that your app, extension, or linked framework appears to ......

Crissmagic
2017/05/21
369
3
Objective-C中的runtime详解_1

Objective-C中的runtime详解 *** 本文介绍自己用到过的或者遇到过的runtime函数, 持续更新中... 首先要想使用runtime中的函数, 必须引入头文件. 1.objc打头的方法 1.1 objc_getClass() 这个方...

hell03W
2016/03/29
16
0
Objective-C对象模型及应用

本文主要介绍Objective-C对象模型的实现细节,以及Objective-C语言对象模型中对isa swizzling和method swizzling的支持。希望本文能加深你对Objective-C对象的理解。 ISA指针 Objective-C是一...

拉偶有所依
2015/07/08
0
0

没有更多内容

加载失败,请刷新页面

加载更多

初探Spring Cloud(一)

1. 什么是Spring Cloud? Spring提供了一系列工具,可以帮助开发人员迅速搭建分布式系统中的公共组件(比如:配置管理,服务发现,断路器,智能路由,微代理,控制总线,一次性令牌,全局锁,...

__HuWei
21分钟前
1
0
Mac配置ssh免密钥登录

Mac终端每次使用ssh -p 22 user@ip登录很是麻烦,下面介绍配置ssh免密钥登录: cd ~/.ssh下创建conf文件,写入以下配置: Host test HostName ip Port 22 IdentityFile /Users/t/key/test.p...

littlemesieV
36分钟前
1
0
Spark2.0操作ES

ES提供了支持包来方便的操作ES。首先添加ES的依赖maven: <dependency> <groupId>org.elasticsearch</groupId> <artifactId>elasticsearch-spark-20_2.11</artifactId> <version>6.2.0</ver......

守望者之父
38分钟前
1
0
专业术语

1、防御性编程 DruidDataSource类有一个init方法,我们在spring中配置druid时,都会指定 init-method='init'. 而且DruidDataSource也在其他地方,诸如getConnection()方法里作了防御性编程, 也就...

still5656
40分钟前
1
0
微信开发--测试账号相关

1、微信公众平台选择代码开发后,其平台上的部分功能会不可用 可在开发者工具中选择开通测试账号,进行相关的功能调试(测试账号出微信支付不可调试外,其他功能基本上都可以调试) 2、测试账号...

Code辉
46分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部