文档章节

respondsToSelector 和 method_exchangeImplementations 审核不过

赵大财
 赵大财
发布于 2017/05/03 16:07
字数 209
阅读 169
收藏 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;
    }  
}


 

 

© 著作权归作者所有

共有 人打赏支持
赵大财
粉丝 21
博文 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
95
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
234
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

没有更多内容

加载失败,请刷新页面

加载更多

Oracle return exit continue

常在循环体中看到下面3种语句: return exit continue 举例说明 啥都没有 -- none begin for i in 1 .. 10 loop if i < 5 then dbms_output.put_line('i < 5, i = ' || to_char......

taadis
今天
2
0
JSONObject 转换时出错 InvocationTargetException

JSONObject 转换时出错java.lang.reflect.InvocationTargetException 一时看不出来是什么问题。 挺奇怪的。 百度参考了一下这个 网页的解决方案 说是类型不对,空? 仔细查看代码,果然是有一...

之渊
今天
3
0
no such module 'pop'问题

在github上 clone 了一个 swift 项目,编译时提示"no such module 'POP'"错误,查了一下居然是因为podfile中指定的最低版本是iOS 11.0,大于我测试手机的iOS版本10.3.3,将Podfile中的最低版...

yoyoso
今天
3
0
redis 系列一 -- 简介及安装

1.简介 redis -- remote dictionary server 远程字典服务 使用 C 语言编写; 高性能的 key-value数据库; 内存数据库,支持数据持久化。 Redis 是一个开源(BSD许可)的,内存中的数据结构存...

imbiao
今天
4
0
nginx log记录请求响应时间

有时为了方便分析接口性能等,需要记录请求的时长,通过修改nginx的日志格式可以做到,如 添加一个新的log_format log_format timed_combined '$remote_addr - $remote_user [$time_local] "...

swingcoder
今天
5
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部