随笔分类 -  iOS

摘要:三层通信模型: 应用层、解释层、会话层; 通信协议: 通信原语; 报文格式; 网络层: _evaluateJavascript 会话层: #define kQueueHasMessage @"__wvjb_queue_message__" #define kBridgeLoaded @"__brid 阅读全文
posted @ 2019-06-10 12:33 zzfx 阅读(506) 评论(0) 推荐(0) 编辑
摘要:一、静态语言+动态库的形式 静态语言+动态库的形式使用的模式是面向com编程; 每一个动态库对应一个com组件; 动态库通过网络+配置文件的形式动态部署; 支持模块和功能级别的动态升级和替换; 对主体功能无法提供维护; 二、动态语言+动态库: 除了能够提供模块级别的替换和动态升级,还能够提供代码(函 阅读全文
posted @ 2019-05-31 16:42 zzfx 阅读(416) 评论(0) 推荐(0) 编辑
摘要:硬修复: 直接修改工程源码,重新发版; 冷修复: 打补丁包,使用动态库和hook技术,在程序启动时完成问题代码修复;案例:iOS逆向工程; 特征:不修改原始代码、补丁发布、目前不支持动态发布; 热修复: 可执行文件内直接继承热修复启动机制; 程序启动后热修复引擎动态检查家在补丁包,完成动态hook; 阅读全文
posted @ 2019-05-29 18:06 zzfx 阅读(263) 评论(0) 推荐(0) 编辑
摘要:一、一条业务pipeline: 一个连接核心:coreanimation 二、两个进程: 1、app进程; 2、render进程; 首先,由 app 处理事件(Handle Events),如:用户的点击操作,在此过程中 app 可能需要更新 视图树,相应地,图层树 也会被更新。 其次,app 通过 阅读全文
posted @ 2019-05-23 16:37 zzfx 阅读(1352) 评论(0) 推荐(0) 编辑
摘要:一、触摸事件派发与视图绘制打包 __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__ __dispatchPreprocessedEventFromEventQueue __CFRUNLOOP_IS_CALLING_OUT_TO_AN_ 阅读全文
posted @ 2019-05-23 16:04 zzfx 阅读(1344) 评论(0) 推荐(0) 编辑
摘要:1、事件循环; 2、显示循环:displaylink;系统定时从gpu缓存获取图片信息显示在屏幕。 阅读全文
posted @ 2019-05-20 21:41 zzfx 阅读(442) 评论(0) 推荐(0) 编辑
摘要:https://blog.nswebfrog.com/2017/10/20/swift-practice-ui-chaining-code/ 阅读全文
posted @ 2019-03-10 22:03 zzfx 阅读(274) 评论(0) 推荐(0) 编辑
摘要:阿里妹导读:刚刚,阿里巴巴正式对外开源了基于 Apache 2.0 协议的协程开发框架 coobjc,开发者们可以在 Github 上自主下载。coobjc是为iOS平台打造的开源协程开发框架,支持Objective-C和Swift,同时提供了cokit库为Foundation和UIKit中的部分A 阅读全文
posted @ 2019-03-05 18:32 zzfx 阅读(1021) 评论(0) 推荐(0) 编辑
摘要:总结:指定函数的调用规则; 初始化函数的调用顺序与初始化顺序相反。 上面关于指定初始化的规则讲了那么多,其实可以归纳为两点: 便利初始化函数只能调用自己类中的其他初始化方法 指定初始化函数才有资格调用父类的指定初始化函数 苹果官方有个图,有助于我们理解这两点: 当我们为自己创建的类添加指定初始化函数 阅读全文
posted @ 2019-02-22 19:42 zzfx 阅读(622) 评论(0) 推荐(0) 编辑
摘要:烂尾的原因是request的一致性比较接口没有开放出来。 阅读全文
posted @ 2019-02-22 16:03 zzfx 阅读(161) 评论(0) 推荐(0) 编辑
摘要:一、缓存策略: 1、缓存策略的配置: 缺省缓存策略的存储策略需要服务器的响应配置; 缺省缓存策略的使用需要请求端的配置; 2、缓存策略的缺陷: 移动端比较通用的缓存策略是先使用缓存同时更新本地数据; 缺省的缓存策略更多是同步确认后再使用本地缓存; 这就需要移动端对缓存策略进行定制;一方面把缓存数据从 阅读全文
posted @ 2019-02-22 15:19 zzfx 阅读(645) 评论(0) 推荐(0) 编辑
摘要:前言 开发中遇到需要获取SDK中的数据,由于无法看到代码,所以只能通过监听所有的网络请求数据,截取相应的返回数据,可以通过NSURLProtocol实现,还可用于与H5的交互 一、NSURLProtocol拦截请求 1、NSURLProtoco简介 NSURLProtocol的官方定义 An NSU 阅读全文
posted @ 2019-02-20 19:55 zzfx 阅读(2107) 评论(0) 推荐(0) 编辑
摘要:NSURLProtocol 的本质是对特殊的scechme进行特殊的协议定制; 网络(应用层)请求的统一入口是nsurlconnection和nsurlsession; http、htp、mail等协议都是; 如果是不存在的协议,比如 google://gohere.oo 需要自己在网络层的基础上进 阅读全文
posted @ 2019-02-20 19:23 zzfx 阅读(243) 评论(0) 推荐(0) 编辑
摘要:在aspect_add、aspect_remove方法里面用了aspect_performLocked, 而aspect_performLocked方法用了OSSpinLockLock加锁机制,保证线程安全并且性能高。不过这种锁已经不在安全,主要原因发生在低优先级线程拿到锁时,高优先级线程进入忙等( 阅读全文
posted @ 2019-02-16 00:21 zzfx 阅读(751) 评论(0) 推荐(0) 编辑
摘要:1、语言与系统; 2、架构与机制; 3、性能:cpu、gpu、io、缓存、内存;性能监测工具; 4、知名开源库; 阅读全文
posted @ 2019-01-31 16:37 zzfx 阅读(292) 评论(0) 推荐(0) 编辑
摘要:在 Android 上,Square 这家公司提供了非常有名的工具: leakcanary ,来帮助开发者们在日常开发过程中就能够发现内存泄漏。但在 iOS 上呢?在 Google 的时候,我发现了两个工具,一个是这篇文章将要翻译并介绍的 Facebook 开源的三件套,另一个则是国内微信阅读团队做 阅读全文
posted @ 2019-01-17 17:52 zzfx 阅读(311) 评论(0) 推荐(0) 编辑
摘要:共享可执行文件 iOS 有沙箱机制,不能跨App间共享共态库,但Apple开放了App Extension,可以在App和Extension间共间动态库(这也许是Apple开放动态链接库的唯一原因了)。 http://blog.lanvige.com/2015/01/04/library-vs-fr 阅读全文
posted @ 2019-01-16 16:13 zzfx 阅读(529) 评论(0) 推荐(0) 编辑
摘要:Locations for Public Frameworks Third-party frameworks can go in a number of different file-system locations, depending on certain factors. Most publi 阅读全文
posted @ 2018-09-21 19:11 zzfx 阅读(102) 评论(0) 推荐(0) 编辑
摘要:let components = URLComponents(url: fakeUrl, resolvingAgainstBaseURL: false)! http://10.100.140.84/m/cashboard/cost/02?yyyyMM=2018-06&tabFlag=02 - sch 阅读全文
posted @ 2018-09-13 18:15 zzfx 阅读(1159) 评论(0) 推荐(0) 编辑
摘要:By specifying NSAllowsArbitraryLoadsInWebContent, you are overriding NSAllowsArbitraryLoads on iOS 10. In iOS 10 and later, and macOS 10.12 and later, 阅读全文
posted @ 2018-09-07 10:38 zzfx 阅读(1239) 评论(0) 推荐(0) 编辑