
前言 几年前刚看到《原则》的时候,书中内容就给了我很大的感触:按照一定的原则去行事,不断调整和践行自己的原则,生活和工作会给出截然不同的反馈。以前自己总有很多想法,作为感性的...
前言 面试是职场中必经的一个步骤,在短短的几十分钟内去考察一个人的各项能力与综合素质,判断候选人与团队和团队匹配程度。从技术角度来看,面试更像是针对某些知识的讨论,寻求面试官...
多个分类重写原有类方法,排序也是固定的。分类中的方法都在原来类方法的前面,而分类中相同的方法,会根据你Xcode中 Build Phases ->Complie Source 里文件的顺序来排序,在最下面的分类文件中的方法会被调用。
而load方法的调用方式跟其他方法不一样,在程序启动加载类,完成分类的合成之后,RunTime会主动调用类和分类的load方法。而调用方式是找到load方法的方法地址,通过地址直接调用,不会通过objc_msgSend方法去调用,就不会去方法列表里面去查找,也就不会有“假覆盖”情况的出现。
iOS面试题:category 和 extension 有什么区别?category 是如何加载的?category 的方法覆盖是怎么处理的?extension 在编译期决定,它就是类的一部分,在编译期和头文件里的 @interface 以及实现文件里的 @implement 一起形成一个完整的类,它伴随类的产生而...
CADisplayLink、NSTimer会对target产生强引用,如果target又对它们产生强引用,那么就会引发循环引用。如果没有在dealloc之前主动关闭(调用in...
如何实现以下场景,“多读单写”,经常用于文件等数据的读写操作 同一时间,只能有1个线程进行写的操作 同一时间,允许有多个线程进行读的操作 同一时间,不允许既有写的操作,又有读...
Objective-C在变为机器代码之前,会被LLVM编译器转换为中间代码 OC -> 中间代码(.ll) -> 汇编、机器代码 可以使用以下命令行指令生成中间代码 clan...
想要查看某个文件的汇编代码是怎么样的,可以这样做: 选中某个文件 点击Product -> Perform Action -> Assemble "xxx.m"截屏2020-...
对象调用,参数就需要传类对象class类调用,参数就需要传元类对象meta-class
@dynamic :告诉编译器不要生成setter、getter方法和成员变量_age@synthesize age; // 为属性age生成_age成员变量,setter...
1. __block可以用于解决block内部无法修改auto变量值的问题 2. __block不能修饰全局变量、静态变量(static) 3. __block修饰变量时,编...
Block的本质 Block本质上也是一个OC对象,它内部也有isa指针Block是封装了函数调用(地址)以及函数调用环境(参数、外部变量)的OC对象结构如图下图截屏2020...
问题:在使用clang转换OC为C++代码时,可能会遇到cannot create __weak reference 问题:cannot create __weak refe...
昨天,一个名字突然空降在微博热搜榜上: 岑怡诺。 14岁神童,号称能一天“作词300首、诗2000首、写15000字小说”,曾四次参加演讲比赛获奖,还是两个品牌的创始人。 这...
Category能否添加成员变量? 不能直接给Category添加成员变量,但能间接实现成员变量的效果。能直接添加属性。添加的属性,只能生成getter、setter方法的声...