··3 分钟
记录时间:2018.7.4
本文使用的测试环境是arm64架构真机
为了探究Tagged Pointer本质,可以查看runtime源码,主要看文件objc-internal.h。
··1 分钟
记录时间:2018.7.3
问题描述 # 在使用URLWithString生成NSURL时,如果出现中文,会导致返回的NSURL为nil。代码如下:
··2 分钟
消息转发流程图
如果类接收到无法处理的消息,会触发消息转发机制,一共有三个步骤,接受者在每一步中均有机会处理消息。步骤越往后,处理消息的代价就越大,所以最好再第一步就处理完。
··5 分钟
本文涉及到的CPU架构为arm64,其它架构大同小异。 源码来自苹果开源-runtime。
Objective-C中采用引用计数机制来管理内存,在MRC时代,需要我们手动retain和release,在苹果引入ARC后大部分时间我们不用再关心引用计数问题。但是为了深入Objective-C本质,引用计数究竟是怎么实现的还是值得我们去探寻的。
··4 分钟
UIWebView没有提供设置UserAgent的接口,但是有一个办法可以间接的设置。
NSDictionary* dict = [[NSDictionary alloc] initWithObjectsAndKeys:value, @"UserAgent", nil]; [[NSUserDefaults standardUserDefaults] registerDefaults:dict]; 通过设置NSUserDefaults中UserAgent的值来修改,但是这种设置方法有一个限制,需要在UIWebView的loadRequest之前调用才能生效(加载PDF比较特殊)。这是Cordova源码中关于这个问题的描述
··12 分钟
本文设计到的源码是基于Cordova 4.2.1版本,Cordova官网。
CDVViewController # CDVViewController是Cordova最主要的类,它把所有模块整合在一起,直接初始化一个它的实例就可以使用。例如下面的代码:
··3 分钟
最近在拜读Draveness大佬的一篇文章自动释放池的前世今生 —- 深入解析 autoreleasepool,看到文中给读者留了一个问题:
我到现在也不是很清楚为什么要根据当前页的不同状态 kill 掉不同 child 的页面。
··5 分钟
背景 # 公司项目使用的Cordova混合开发的,有一个模块以前用H5实现的,新版本用原生来实现,于是需要迁移数据。H5使用的Local Storage存的数据,原生要拿到数据有两种方案:
··2 分钟
背景 # 最近遇到一个Bug,在用AFNetworking下载文件的时候莫名其妙的失败了,跟了一下发现一个小坑,记录一下防止以后再掉进去。
··7 分钟
前言 # 最近需要实现一个新需求,用iOS 10出的CallKit实现将APP的通讯录的信息同步到系统中,可以不把人员信息加到通讯录中,实现来电号码识别。这个功能在xx安全卫士、xx管家中很早就实现了,但是网上相关的资料较少,而且官方的文档写的太简单了,很多坑还要自己去摸索。于是记录一下和各位分享,如有错误之处请各位指出!