打算把《高性能iOS开发》这本书公开出来,供大家学习。这是第一章,感兴趣的可以订阅我的专题 高性能iOS应用开发。 本书假设你是 iOS 开发人员,有长期开发原生 iOS 应...
打算把《高性能iOS开发》这本书公开出来,供大家学习。这是第一章,感兴趣的可以订阅我的专题 高性能iOS应用开发。 本书假设你是 iOS 开发人员,有长期开发原生 iOS 应...
字符串拼接 字符串格式化 格式化 保留两位小数 不足两位前面补0 获取字符串长度 遍历字符串 字符串操作 获取首字符 删除首字符 删除指定位置 删除最后一个字符 删除所有内容...
在面向对象编程中,类可以包含 抽象方法 和 非抽象方法。 这两种方法具有不同的特性和用途: 抽象方法: 定义: 抽象方法是没有具体实现的方法,通常只在抽象类或接口(协议)中声...
SOLID原则 单一职责原则 开闭原则 里氏替换原则 接口隔离原则 依赖倒置原则 一、单一职责原则 一个类只负责一个职责 二、开闭原则 对扩展开放,对修改封闭 符合开放封闭原...
Dependency for P1:target-xxx-f33cd0a4df60f3a91c3439d6d9991c1c9440858e1a4caf6687455f6b14...
作用: weak属性修饰符用来修饰对象,是弱引用;被weak修饰的对象引用计数不会+1,当引用的对象释放掉之后,weak会自动置为nil,从而避免野指针访问无用内存(对象被释...
一、NSMutableArray与NSArray 1、NSArray被strong和copy修饰之后 (1)strong 被strong修饰之后,由于只是强引用,所以修饰后的...
isa指针 isa指针 instance 的 isa 指向 class当调用对象方法时,通过 instance 的 isa 找到 class,最后找到对象方法的实现进行调用;...
首先要知道,objc_msgSend 是汇编语言写的,区别于 C/C++ 实现的源码,优势是汇编语言非常快,对于方法查找这种经常发生的高频率事务,速度非常重要。 另外一点味了...
1.方法的本质 通过之前分析对象的本质[https://www.jianshu.com/p/52581961fff4],同理,我们也可以通过clang来分析方法的本质。 首先...
一、 1.动态创建一个类(参数:父类、类名、额外的内存空间)objc_allocateClassPair(Class superclass, const char * nam...
通过#import <objc/runtime.h> 1.我们可以找到class_getInstanceMethod方法(获取类的实例方法) 2.用method_exchan...
ARC中dealloc过程以及.cxx_destruct的探究 ARC文档中对dealloc过程的解释 A class may provide a method defini...
一、Class 通过之前文章我们可以知道,所有对象都有一个isa指针指向它对应类的Class,而Class则是一个objc_class结构体,结构体中: 实例变量列表objc...
Runtime应用02-字典转模型 首先创建一个字典: 根据key来记录property的属性名称,创建一个模型: 然后创建一个NSObject的分类,当我们要使用的时候直接...
Runtime结构 OC是一门动态性比较强的语言,跟C、C++语言有着很大不同 OC的动态性是由Runtime API来支撑的 Runtime API提供的接口基本都是C语言...
__block __block可以用于解决block内部无法修改auto变量值的问题 __block不能修饰全局变量,静态变量 编译器会将__block变量包装成一个对象 问...
Block的类型 一、block的三种类型 NSGlobalBlock NSStackBlock NSMallocBlock 每种类型的block调用结果如下: 二、bloc...
Block的本质 block本质上也是一个OC对象,它内部也有个isa指针 block是封装了函数调用以及函数调用环境的OC对象 底层结构如图所示 block的变量捕获 什么...