随笔分类 -  oc

摘要:Github:iOS-Source-Probe 源码探求 几天前 Github 的 RetVal 大神更新了可 debug 版本的 706 <objc/runtime.h> 源码,于是让源码阅读学习得以继续。本文将介绍个人学习 load 方法的全部流程。 load 方法的调用时机 从 Effecti 阅读全文
posted @ 2020-03-11 17:26 zzfx 阅读(314) 评论(0) 推荐(0) 编辑
摘要:__block变量的操作: 1、型变操作:在编译时型变为结构体; 2、在复制时,引发本体转移和分身问题。 3、__forwarding的类型为型变类型;指向型变本体。 4、在形式上与变量的深浅拷贝有一定相似之处。 __block的本质是变量的二次封装与引用 在编译时编译成封装的结构体。 __bloc 阅读全文
posted @ 2020-02-05 10:54 zzfx 阅读(280) 评论(2) 推荐(0) 编辑
摘要:值类型; 对象类型; block、函数式类型; 抽象类型:协议; 类型的操作: 分类、扩展; 阅读全文
posted @ 2020-02-03 10:00 zzfx 阅读(258) 评论(0) 推荐(0) 编辑
摘要:Objective-C is a class-based object system. Each object is an instance of some class; the object's isa pointer points to its class. That class describ 阅读全文
posted @ 2019-10-15 15:12 zzfx 阅读(220) 评论(0) 推荐(0) 编辑
摘要:BlocksKit 对 oc语言的功能层、UI层进行了大量的适配,使得oc能够复合函数式编程的风格; 是oc语言的函数式编程风格改造; 将函数式风格的BlocksKit API解释为原生的功能调用; 对系统API的block方式调用的高度封装, 4、BlocksKit目录结构 BlocksKit代码 阅读全文
posted @ 2019-05-31 19:00 zzfx 阅读(379) 评论(0) 推荐(0) 编辑
摘要:经常发现在一些需要使用消息转发而创建代理类时, 不同的程序员都有着不同的使用方法, 有些采用继承于NSObject, 而有一些采用继承自NSProxy. 二者都是Foundation框架中的基类, 并且都实现了<NSObject>这个接口, 从命名和文档中看NSProxy天生就是用来干这个事情的. 阅读全文
posted @ 2019-05-31 17:35 zzfx 阅读(662) 评论(0) 推荐(0) 编辑
摘要:硬修复: 直接修改工程源码,重新发版; 冷修复: 打补丁包,使用动态库和hook技术,在程序启动时完成问题代码修复;案例:iOS逆向工程; 特征:不修改原始代码、补丁发布、目前不支持动态发布; 热修复: 可执行文件内直接继承热修复启动机制; 程序启动后热修复引擎动态检查家在补丁包,完成动态hook; 阅读全文
posted @ 2019-05-29 18:06 zzfx 阅读(263) 评论(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 阅读(1338) 评论(0) 推荐(0) 编辑
摘要:按照一定规则使用匹配模式在目标空间进行搜索,然后执行相应操作; 运行时系统将kvc的运行机制解释为模式匹配,将值的兼容性问题解释为装包解包问题 一、模式匹配 The default implementation of the NSKeyValueCoding protocol provided by 阅读全文
posted @ 2019-03-27 11:50 zzfx 阅读(222) 评论(0) 推荐(0) 编辑
摘要:?协变性与逆变性是类型关系在范畴论的定义。是类型的继承关系在高阶类型中的定义? __kindof只是在统一继承体系下方便了类型转化,提供了使用时语法上的便捷;但是对于类型转换是否正确不做判定; kindDerived *derived = [self getInstance]; - (__kindo 阅读全文
posted @ 2019-03-13 16:02 zzfx 阅读(294) 评论(0) 推荐(0) 编辑
摘要:算法沉思录:分而治之(复用); 分而治之是指把大而复杂的问题分解成若干个简单的小问题,然后逐个解决。这种朴素的思想来源于人们生活与工作的经验,也完全适合于技术领域。 要崩溃的节奏; 要崩溃的节奏; Variable Attributes libextobjc 实现的 defer 并没有基于 Obje 阅读全文
posted @ 2019-02-14 19:41 zzfx 阅读(550) 评论(0) 推荐(0) 编辑
摘要:简介: 在IOS9.2官方文档中Attributes的描述如下,简单明了: Attributes provide more information about a declaration or type. There are two kinds of attributes in Swift, tho 阅读全文
posted @ 2019-02-14 18:40 zzfx 阅读(659) 评论(0) 推荐(0) 编辑
摘要:oc的静态函数与类函数不同; 1、静态函数与c++中表现一致,只在模块内部可见; 2、静态函数内部没有self变量; 3、静态函数不参与动态派发;没有在函数列表里;是静态绑定的; @implementation PXGooooogo + (BOOL) testEgo{ NSLog(@"eeeeee" 阅读全文
posted @ 2019-02-14 17:28 zzfx 阅读(1348) 评论(0) 推荐(0) 编辑
摘要:通过哨兵参数实现,相当于nil. 1.c语言中 #import <stdio.h> #import <stdarg.h> int addemUp(int firstNum,...) { va_list args;//指向参数的指针 int sum = firstNum; int number; va 阅读全文
posted @ 2019-02-13 17:16 zzfx 阅读(758) 评论(0) 推荐(0) 编辑
摘要:HOOK:面向函数,解决函数调用拦截与替换的问题; 动态代理:面向对象,解决对象的动态替换问题; 动态代理的实现方案: 1、经典代理机制; 2、子类化机制;oc语言的isa替换是这额解决方案的经典案例; 阅读全文
posted @ 2019-02-13 11:02 zzfx 阅读(568) 评论(0) 推荐(0) 编辑
摘要:在Java和.Net中的AOP也是利用了这种代理模式的实现。 iOS实现的代码如下: 首先,定义一个接口, 这个接口做两件事,doSomething和doOtherThing。 被代理类需要实现这个接口(不实现其实也可以,只是设计不好,每一个类都应该实现接口或者继承自一个抽象类)。 同时,代理类也实 阅读全文
posted @ 2019-02-12 14:49 zzfx 阅读(257) 评论(0) 推荐(0) 编辑
摘要:三、既然是 non-fragile ivars,为什么 Category 不能增加成员变量? 看过一些资料,理由并不是很让人信服。我觉得并不是做不到,只是现在没有做,现在不支持。我在 Optimizing App Startup Time Video 中找到答案,我觉得是因为 Category re 阅读全文
posted @ 2019-01-16 16:25 zzfx 阅读(302) 评论(0) 推荐(0) 编辑
摘要:Runtime Versions and Platforms There are different versions of the Objective-C runtime on different platforms. Legacy and Modern Versions There are tw 阅读全文
posted @ 2019-01-16 12:05 zzfx 阅读(219) 评论(0) 推荐(0) 编辑
摘要:NSHashTable NSHashTable是更广泛意义的NSSet,区别于NSSet / NSMutableSet,NSHashTable有如下特性: * NSSet / NSMutableSet是对其成员的强类型引用,这些成员被通过hash方法和isEqual方法来完成哈希和对比功能 * NS 阅读全文
posted @ 2019-01-03 15:20 zzfx 阅读(553) 评论(0) 推荐(0) 编辑
摘要:class_addProtocol([UIButton class],@protocol(UIButtonExport)); @protocol UIButtonExport <JSExport> - (void)setTitle:(NSString *)title forState:(UICont 阅读全文
posted @ 2018-12-11 11:47 zzfx 阅读(172) 评论(0) 推荐(0) 编辑