文档章节

respondsToSelector 和 method_exchangeImplementations 审核不过

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


 

 

© 著作权归作者所有

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

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

ziyuzhiye ⋅ 2017/10/31 ⋅ 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 ⋅ 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 ⋅ 3

Objective-C中的runtime详解_1

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

hell03W ⋅ 2016/03/29 ⋅ 0

one-stop-shop for all your method swizzling needs

JRSwizzle Description JRSwizzle is source code package that offers a single, easy, correct+consistent interface for exchanging Objective-C method implementations ("method swizzl......

mingxun ⋅ 2014/04/27 ⋅ 0

Objective-C对象模型及应用

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

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

第三方库之-MJRefresh

MJRefresh类的关系图 ***研究了一下框架, 总体的结构大概是这样的, mjheader和mjfooter都继承自一个基类, 这个基类继承自UIView, mjheader和mjfooter又都有自己的子类, 子类来实现具体的方法...

hell03W ⋅ 2016/03/29 ⋅ 1

iOS中的AOP(面向切面编程)

在软件业,AOP为Aspect Oriented Programming的缩写,意为:面向切面编程,通过预编译方式和运行期动态代理实现程序功能的统一维护的一种技术。AOP是OOP的延续,是软件开发中的一个热点。利用...

hell03W ⋅ 2016/04/27 ⋅ 2

iOS开发之旅--_isa和_imp指针

iOS开发之旅--isa和imp指针 一、回顾_isa指针 之前谈到过isa指针,isa指针是一个指向所属类的指针,它标注着一个实例对象的真实类型。 在Object-C中消息机制是依靠这个函数发送消息, 含两个...

法斗斗 ⋅ 04/23 ⋅ 0

Method Swizzling利用OC动态性解决问题

Method Swizzling 原理 在Objective-C中调用一个方法,其实是向一个对象发送消息,查找消息的唯一依据是selector的名字。利用Objective-C的动态特性,可以实现在运行时偷换selector对应的方法...

小鸡蹲蘑菇 ⋅ 2015/12/03 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

大数据工程师需要精通算法吗,要达到一个什么程度呢?

机器学习是人工智能的一个重要分支,而机器学习下最重要的就是算法,本文讲述归纳了入门级的几个机器学习算法,加大数据学习群:716581014一起加入AI技术大本营。 1、监督学习算法 这个算法由...

董黎明 ⋅ 34分钟前 ⋅ 0

Kylin 对维度表的的要求

1.要具有数据一致性,主键值必须是唯一的;Kylin 会进行检查,如果有两行的主键值相同则会报错。 2.维度表越小越好,因为 Kylin 会将维度表加载到内存中供查询;过大的表不适合作为维度表,默...

无精疯 ⋅ 37分钟前 ⋅ 0

58到家数据库30条军规解读

军规适用场景:并发量大、数据量大的互联网业务 军规:介绍内容 解读:讲解原因,解读比军规更重要 一、基础规范 (1)必须使用InnoDB存储引擎 解读:支持事务、行级锁、并发性能更好、CPU及...

kim_o ⋅ 41分钟前 ⋅ 0

代码注释中顺序更改 文件读写换行

`package ssh; import com.xxx.common.log.LogFactory; import com.xxx.common.log.LoggerUtil; import org.apache.commons.lang3.StringUtils; import java.io.*; public class DirErgodic ......

林伟琨 ⋅ 48分钟前 ⋅ 0

linux实用操作命令

参考 http://blog.csdn.net/qwe6112071/article/details/50806734 ls [选项] [目录名 | 列出相关目录下的所有目录和文件 -a 列出包括.a开头的隐藏文件的所有文件-A 同-a,但不列出"."和"...

简心 ⋅ 今天 ⋅ 0

preg_match处理中文符号 url编码方法

之前想过直接用符号来替换,但失败了,或者用其他方式,但有有些复杂,这个是一个新的思路,亲测可用 <?php$str='637朗逸·超速新风王(300)(白光)'; $str=iconv("UTF-8","GBK",$s...

大灰狼wow ⋅ 今天 ⋅ 0

DevOps 资讯 | PostgreSQL 的时代到来了吗 ?

PostgreSQL是对象-关系型数据库,BSD 许可证。拼读为"post-gress-Q-L"。 作者: Tony Baer 原文: Has the time finally come for PostgreSQL?(有删节) 近30年来 PostgreSQL 无疑是您从未听...

RiboseYim ⋅ 今天 ⋅ 0

github太慢

1:用浏览器访问 IPAddress.com or http://tool.chinaz.com 使用 IP Lookup 工具获得github.com和github.global.ssl.fastly.net域名的ip地址 2:/etc/hosts文件中添加如下格式(IP最好自己查一...

whoisliang ⋅ 今天 ⋅ 0

非阻塞同步之 CAS

为解决线程安全问题,互斥同步相当于以时间换空间。多线程情况下,只有一个线程可以访问同步代码。这种同步也叫阻塞同步(Blocking Synchronization). 这种同步属于一种悲观并发策略。认为只...

长安一梦 ⋅ 今天 ⋅ 0

云计算的选择悖论如何对待?

人们都希望在工作和生活中有所选择。但心理学家的调查研究表明,在多种选项中进行选择并不一定会使人们更快乐,甚至不会产生更好的决策。心理学家Barry Schwartz称之为“选择悖论”。云计算为...

linux-tao ⋅ 今天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部