iOS开发
文章平均质量分 83
我叫Vincent
iOS开发工程师
展开
-
解决"IOS ATS禁止HTTP明文传输"
最近新建项目中,访问网络被阻止App Transport Security has blocked a cleartext HTTP (http://) resource load since it is insecure. Temporary exceptions can be configured via your app's Info.plist file.意思就是ATS阻止了HTT原创 2017-03-02 16:56:16 · 1058 阅读 · 0 评论 -
Runloop底层原理--源码分析
什么是Runloop?Runloop不仅仅是一个运行循环(do-while循环),也是提供了一个入口函数的对象,消息机制处理模式。运行循环从两种不同类型的源接收事件。输入源提供异步事件,通常是来自另一个线程或来自不同应用程序的消息。定时器源提供同步事件,发生在预定时间或重复间隔。两种类型的源都使用特定于应用程序的处理程序例程来处理事件。除了处理输入源之外,Runloop还会生成有关Runl...原创 2019-07-10 14:36:49 · 830 阅读 · 0 评论 -
Runtime底层原理--动态方法解析总结
方法的底层会编译成消息,消息进行递归,先从实例方法开始查找,到父类最后到NSObject。如果在汇编部分快速查找没有找到IMP,就会进入C/C++中的动态方法解析进入lookUpImpOrForward方法进行递归。动态方法解析动态方法解析分为实例方法和类方法两种。实例方法查找imp流程和动态方法解析比如执行一个Student实例方法eat,会先去这个类中查找是否有该方法(sel),...原创 2019-06-27 20:39:33 · 822 阅读 · 0 评论 -
Xcode无线调试
Xcode无线调试是WWDC2017的一个新功能,首先要满足iOS11以上,Xcode9以上;首先,把iOS11以上的iOS设备连接到Xcode9,shift + Commond + 2快速打开设备列表,或者在菜单中打开window,找到Device and simulators。打开后,勾选Connect via network,成功后拔掉数据线。在左侧列表中,右击刚刚连接的iOS...原创 2019-06-24 14:34:25 · 2352 阅读 · 0 评论 -
Runtime底层原理--动态方法解析、消息转发源码分析
了解了Runtime函数含义,我们就可以直接使用Runtime的API了,那接下来继续探究Runtime的源码,经过源码分析来更加深刻的了解Runtime原理。开发应用都知道Runtime很重要,但是有很多小伙伴根本不了解,或者只是知道可以替换方法啊、可以交换两个方法的调用,项目中也用不到,从进入iOS开始,写了无数个[[objc alloc] init],这个到底在干嘛?初始化和ini...原创 2019-05-08 11:09:26 · 381 阅读 · 0 评论 -
Runtime底层原理--Runtime简介、函数注释
Runtime官方文档介绍直通车扩展:编译时看到运行时就会想到编译时,编译时主要是将源代码翻译成可识别的机器语言,如果编译时类型检查等翻译过程中发现语法分析之类有错误会给出相应的提示。比如OC,swift,Java等高级语言的可读性比较强,但是一般不会被机器直接识别,所以需要将他们编译成机器语言(汇编等),转为二进制Runtime简介在 Objective-C 中,消息是直到运行的时...原创 2019-05-08 11:06:10 · 424 阅读 · 0 评论 -
本地进行证书签名
之前说过生成公私钥.pem文件,实际上,我们在工作中一般不会用到.pem文件,我们完全可以在钥匙串中证书助理直接从证书颁发机构中申请证书,当然本地也可以。终端生成证书首先生成.csr请求证书文件,之后用这个.csr文件去证书颁发机构请求证书。// 通过private.pem,new一个rsacert.csr文件$ openssl req -new -key private.pem...原创 2019-03-29 17:31:20 · 478 阅读 · 0 评论 -
非对称加密算法--RSA加密原理详解
密码学是在编码与破译的斗争实践中逐步发展起来的,并随着先进科学技术的应用,已成为一门综合性的尖端技术科学。密码学发展史在说RSA加密算法之前, 先说下密码学的发展史。其实密码学的诞生,就是为了运用在战场,在公元前,战争之中出现了秘密书信。在中国历史上最早的加密算法的记载出自于周朝兵书《六韬.龙韬》中的《阴符》和《阴书》。在遥远的西方,在希罗多德(Herodotus)的《历史》中记载了公元前...原创 2018-12-24 00:33:58 · 50951 阅读 · 20 评论 -
修改系统UIAlertAction的按钮颜色
通过runtime获取对应的可以修改的key来修改系统UIAlertAction的按钮颜色原创 2018-06-21 11:39:29 · 6336 阅读 · 0 评论 -
UItableView的一些特殊点击效果
UItableView是iOS常用控件之一,我们也经常会用它来展示数据;那么就不可避免会对UItableView有点击,左右滑动等操作,接着就会有操作的效果。哇啦哇啦一大堆就不展示了,直接上代码说下选中的效果吧。选中效果就要用到UItableViewCell的selectionStyle属性UITableView的cell默认选中效果为UITableViewCellSe原创 2017-09-06 16:37:46 · 2116 阅读 · 0 评论 -
最新cocoaPods安装、升级、卸载及删除库命令(持续更新)
从开始开发iOS就一直在用cocoaPods,其中也遇到了不少问题,下面的是关于cocoaPods的一些命令,在这里Mark下。一、命令行安装$ sudo gem update --system // 先更新gem,已切换到最新地址$ gem sources --remove https://rubygems.org/$ gem sources -a https://gems.rub...原创 2016-08-10 20:59:04 · 6067 阅读 · 0 评论 -
Runtime底层原理总结--反汇编分析消息转发
消息转发:发送一个消息,也就是sel查找imp,当没有找到imp,接下来进入动态方法解析,如果开发者并没有处理,会进入消息转发。消息转发前几篇文章介绍了Runtime底层原理和动态方法解析总结,我们知道如果前面的动态方法解析也没有解决问题的话,那么就会进入消息转发_objc_msgForward_impcache方法,会有快速消息转发和慢速消息转发。_objc_msgForward_...原创 2019-07-05 16:06:45 · 503 阅读 · 0 评论