[13]Effective Objective-C 2.0【1-

2019-05-10  本文已影响0人  默然走一生

Effective Objective-C 2.0编写高质量iOS与OS X代码的52个有效方法

第一章 熟悉Objective-C

第一条 了解Objective-C语言的起源

Objective-C 与C++、Java等面相对象语言类似,不过很多方面有差别。Objective-C语言使用“消息结构”(messaging structure) 而非"函数调用"(function calling). Objective-C语言由Smalltakl演化而来, Smalltakl 是消息型语言的鼻祖。消息与函数调用之间的区别看上去就像这样:

//Messaging (Objective-C)
Object * obj = [Objective new];
[obj performWith:parameter1 and:parameter2];

//Function calling (C++)
Object * obj = new Object;
obj->perform(parameter1, parameter2);

关键区别在于:函数调用改的语言,在编译阶段由编译器生成一些虚方法表,在运行时从这个表找到所要执行的方法去执行。而使用了动态绑定的消息结构在运行时接到一条消息,接下来要执行什么代码是运行期决定的,而不是编译器。

第二条: 在类的文件中尽量少引用其他头文件

如果需要引用一个类文件时,只是需要使用类名,不需要知道其中细节,可以用@class xx.h,这样做的好处会减少一定的编译时间。如果是用的#import全部导入的话,会出现a.h import了b.h,当c.h 又import a.h时,把b.h也都导入了,如果只是用到类名,真的比较浪费,也不够优雅

有时候无法使用@class向前声明,比如某个类要遵循一项协议,这个协议在另外一个类中声明的,可以将协议这部分单独放在一个头文件,或者放在分类当中,以降低引用成本。

面相对象(拓展)

OOP,Object Oriented Programming,面向对象的编程,还有OOD(面向对象的设计),OOA(面向对象的分析)

面向对象的三大特性:

五大基本原则:

感谢分享,学习:https://www.jianshu.com/p/862b064e82e0

上一篇 下一篇

猜你喜欢

热点阅读