objc_msgSend()函数和_objc_msgForward函数作用

前言

[ receiver message ];

objective-c的这种语法被苹果称为“发消息”。与其他面向对象语言(C++/Java)的“方法调用”不同,objc的消息机制是由运行时实现、非常灵活动态。这篇文章简单记录一下objc运行时对于消息发送和转发的实现。

这里主要涉及到两个函数objc_msgSend()函数和_objc_msgForward()函数。

Runtime如何实现weak属性?

weak的生命周期

我们都知道weak表示的是一个弱引用,这个引用不会增加对象的引用计数,并且在所指向的对象被释放之后,weak指针会被设置的为nil。weak引用通常是用于处理循环引用的问题,如代理及block的使用中,相对会较多的使用到weak。

之前对weak的实现略有了解,知道它的一个基本的生命周期,但具体是怎么实现的,了解得不是太清晰。今天又翻了翻《Objective-C高级编程》关于__weak的讲解,在此做个笔记。

iOS渐入佳境之内存管理机制(二):ARC

ARC解决的问题(ARC都做了什么)

ARC就是代码中自动加入了retain/release,原先需要手动添加的用来处理内存管理的引用计数的代码可以自动地由编译器完成了。所以,ARC是编译器(时)特性,而不是运行时特性,更不是垃圾回收器(GC)。

视代码为颜值:Objective-C代码规范

前言

细心的人会发现,在很多程序员招聘要求上会有代码规范这一要求,刚开始可能认为这个要求很容易达到,但其实细想,这并不是一个简单地要求。

一开始,我仅仅只以能实现功能为主要目的,其他细节一概不管,但是注意到招聘要求的细节后仔细想过,在公司,自己的代码要给很多人看,所以做到代码清晰简洁、方便阅读理解很重要。