上一页 1 ··· 40 41 42 43 44 45 46 47 48 ··· 103 下一页
摘要: 1、使用类似动态代理的模式和消息派发中枢模式实现整个架构; 2、使用NSMapTable和NSHashTable进行切面信息的增删查维护;主要用于去重和查看是否存在。 实现方式 消息流 KVOControllerKVOControllerUML observer 调用的方法注册观察者。 FBKVOC 阅读全文
posted @ 2019-02-25 19:14 zzfx 阅读(765) 评论(0) 推荐(0)
摘要: class baseGoo{ var isScannerRunning = false { willSet{ print(newValue) } } var desp:String = "" { willSet{ print(newValue) } } func testFun()->(){ des 阅读全文
posted @ 2019-02-25 12:35 zzfx 阅读(506) 评论(0) 推荐(0)
摘要: func response(from resultObject: Any) throws -> Response { guard let dict = resultObject as? [String: AnyObject], let transaction = PendingTransaction 阅读全文
posted @ 2019-02-25 11:43 zzfx 阅读(314) 评论(0) 推荐(0)
摘要: 总结:指定函数的调用规则; 初始化函数的调用顺序与初始化顺序相反。 上面关于指定初始化的规则讲了那么多,其实可以归纳为两点: 便利初始化函数只能调用自己类中的其他初始化方法 指定初始化函数才有资格调用父类的指定初始化函数 苹果官方有个图,有助于我们理解这两点: 当我们为自己创建的类添加指定初始化函数 阅读全文
posted @ 2019-02-22 19:42 zzfx 阅读(640) 评论(0) 推荐(0)
摘要: 整合与构建的能力是创造性思维的重要体现。 构建与整合: 已有的与目标。 阅读全文
posted @ 2019-02-22 17:06 zzfx 阅读(286) 评论(0) 推荐(0)
摘要: 烂尾的原因是request的一致性比较接口没有开放出来。 阅读全文
posted @ 2019-02-22 16:03 zzfx 阅读(168) 评论(0) 推荐(0)
摘要: 一、缓存策略: 1、缓存策略的配置: 缺省缓存策略的存储策略需要服务器的响应配置; 缺省缓存策略的使用需要请求端的配置; 2、缓存策略的缺陷: 移动端比较通用的缓存策略是先使用缓存同时更新本地数据; 缺省的缓存策略更多是同步确认后再使用本地缓存; 这就需要移动端对缓存策略进行定制;一方面把缓存数据从 阅读全文
posted @ 2019-02-22 15:19 zzfx 阅读(678) 评论(0) 推荐(0)
摘要: 前言 开发中遇到需要获取SDK中的数据,由于无法看到代码,所以只能通过监听所有的网络请求数据,截取相应的返回数据,可以通过NSURLProtocol实现,还可用于与H5的交互 一、NSURLProtocol拦截请求 1、NSURLProtoco简介 NSURLProtocol的官方定义 An NSU 阅读全文
posted @ 2019-02-20 19:55 zzfx 阅读(2197) 评论(0) 推荐(0)
摘要: NSURLProtocol 的本质是对特殊的scechme进行特殊的协议定制; 网络(应用层)请求的统一入口是nsurlconnection和nsurlsession; http、htp、mail等协议都是; 如果是不存在的协议,比如 google://gohere.oo 需要自己在网络层的基础上进 阅读全文
posted @ 2019-02-20 19:23 zzfx 阅读(257) 评论(0) 推荐(0)
摘要: 运行时类型信息代表类型信息和对内存的操作能力。 运行时类型信息是运行时系统的基础。 类型信息分为编译时类型信息和运行时类型信息两种; 静态语言的类型信息只在编译时使用和保留,在可执行文件中没有类型信息; 类型信息只用于编译时的类型检查、函数绑定等 类型信息:从编译到运行 1、静态语言:从编译到运行类 阅读全文
posted @ 2019-02-20 15:37 zzfx 阅读(197) 评论(0) 推荐(0)
摘要: swift是静态语言,没有在运行时保存类型的结构信息(isa、class)。 一、self、Self、Type、typeof extension Collection where Self.Element == UInt8, Self.Index == Int public static func 阅读全文
posted @ 2019-02-20 15:01 zzfx 阅读(753) 评论(0) 推荐(0)
摘要: 中间人攻击(Man-in-the-MiddleAttack,简称“MITM攻击”)是一种“间接”的入侵攻击,这种攻击模式是通过各种技术手段将受入侵者控制的一台计算机虚拟放置在网络连接中的两台通信计算机之间,这台计算机就称为“中间人”。 中间人攻击(Man-in-the-Middle Attack, 阅读全文
posted @ 2019-02-19 17:29 zzfx 阅读(648) 评论(0) 推荐(0)
摘要: AOP的本质是HOOK; HOOK的本质是:新函数包含原函数或新函数替换原函数; 需要解决的问题: 1、新函数的生成; 2、新函数的调用机制; 3、原函数的调用机制; 新函数的生成: 1、将已有的动态派发机制函数直接替换; 2、伪造签名后生成新函数,新函数的核心处理逻辑使用通用函数; 总之:重定位到 阅读全文
posted @ 2019-02-19 15:32 zzfx 阅读(462) 评论(0) 推荐(0)
摘要: libffi is a foreign function interface library. It provides a C programming language interface for calling natively compiled functions given informati 阅读全文
posted @ 2019-02-18 16:29 zzfx 阅读(909) 评论(0) 推荐(0)
摘要: 1.分治法 关键词:递归(递归式)、大问题分解成子问题(子问题相互独立,且与原问题相同)、合并(子问题的解合并成原问题的解) 步骤: 1.分解。将原问题分解成一系列子问题。 2.求解。递归地求解各子问题。若子问题足够小,则直接求解。(递归式) 3.合并。将子问题的解合并成原问题的解 示例:归并排序; 阅读全文
posted @ 2019-02-18 11:02 zzfx 阅读(589) 评论(0) 推荐(0)
摘要: 在aspect_add、aspect_remove方法里面用了aspect_performLocked, 而aspect_performLocked方法用了OSSpinLockLock加锁机制,保证线程安全并且性能高。不过这种锁已经不在安全,主要原因发生在低优先级线程拿到锁时,高优先级线程进入忙等( 阅读全文
posted @ 2019-02-16 00:21 zzfx 阅读(764) 评论(0) 推荐(0)
摘要: 关注核心功能和关键接口:比如网络、模块间的接口 站在架构师的角度看是系统解构与重组的过程 代码阅读的过程是关注核心功能,然后进行分合模型重建的过程。站在底层的角度是盲人摸象、节点搜素的过程。站在高层是系统解构与重组的过程。 代码的灵魂是功能及机制; 代码的骨头是架构; 代码的肉身是技术; 业务决定功 阅读全文
posted @ 2019-02-15 23:51 zzfx 阅读(308) 评论(0) 推荐(0)
摘要: 总结: Aspects 是对 类的继承结构isa、mataclass结构的调整和维护;相当于链表的节点插入和删除; 同时使用method Swizzling 对方法统一重定向; 同时使用类似代理的机制对消息进行转发; 在类结构调整和消息交换重定向的过程中插入织入的功能。 前言 众所周知,Aspect 阅读全文
posted @ 2019-02-15 23:40 zzfx 阅读(579) 评论(0) 推荐(0)
摘要: 结论1、签名的参量类型伪造不正确会导致崩溃。 结论二、签名个数不对可能会导致参量丢失。 结论三:在签名配置正确的情况下,系统会将函数调用的所有信息打包到NSInvocation准备转发; - (void)viewDidLoad { [super viewDidLoad]; // Do any add 阅读全文
posted @ 2019-02-15 20:45 zzfx 阅读(350) 评论(0) 推荐(0)
摘要: 算法沉思录:分而治之(复用); 分而治之是指把大而复杂的问题分解成若干个简单的小问题,然后逐个解决。这种朴素的思想来源于人们生活与工作的经验,也完全适合于技术领域。 要崩溃的节奏; 要崩溃的节奏; Variable Attributes libextobjc 实现的 defer 并没有基于 Obje 阅读全文
posted @ 2019-02-14 19:41 zzfx 阅读(568) 评论(0) 推荐(0)
上一页 1 ··· 40 41 42 43 44 45 46 47 48 ··· 103 下一页