iOS开发的52个要点纪要之一

1、Objective-C为C语言添加了面向对象的特性,是其超集。Objective-C使用动态绑定的消息结构,也就是说,在运行时才会检查对象类型。接受一条消息之后,究竟应该执行何种代码,由运行期环境而非编译器来决定。

理解C语言的核心概念有助于写好Objective-C程序,尤其要掌握内存模型与指针。

2、除非确有必要,否则不要引入头文件。一般来说,应在某个类的头文件中使用向前声明来提及别的类,并在实现文件中引入头文件。这样可以尽量降低类之间的耦合。

有时无法使用向前声明,比如要声明某个类遵循一项协议。这种情况下,尽量把“某类遵循某协议”的这条声明移至“class-continuation分类”中。如果不行的话,就把协议单独放在一个头文件中,然后将其引入。

3、应该使用字面量语法来创建字符串、数值、数组、字典。与创建此类对象的常规方法相比,这么做更加简明扼要。

应该通过下标操作来访问数组下标或字典中的键所对应的元素。

用字面量语言创建的数组或字典,若值中有nil,则会抛出异常。因此务必确保值里不含nil。

4、不要用预处理指令定义常量。这样定义的常量不含类型信息,编译器只是会在编译前据此执行查找和替换操作。即使有人重新定义了常量值,编译器也不会产生警告信息,这样将导致程序中的常量值不一致。

在实现文件中使用static const 来定义“只在编译单元内可见的常量”。由于此类常量不在全局符号表中,所以无须为其名称添加前缀。

在头文件中使用extern 来声明全局常量,并在相关实现文件中定义其值。这种常量要出现在全局符号表中,所以其名称应加以区隔,通常用与之相关的类名做前缀。

5、应该用枚举来表示状态机的状态、传递给方法的选项以及状态码等值,给这些值起个易懂的名字。

如果把传递给某方法的选项表示为枚举类型,而多个选项又可以同时使用,那么就将各选项定义为2的幂,以便通过按位或操作将其组合起来。

用NS_ENUM与NS_OPTIONS宏来定义枚举类型,并指明其底层数据类型。这样做可以确保枚举是用开发者所选的底层数据类型来实现的,而不会采用编译器所选的类型。

在处理枚举类型的switch语句中不要实现default分支。这样的话,新加入枚举之后,编译器就会提示开发者:switch语句并未处理所有枚举。

时间: 2024-10-13 00:37:17

iOS开发的52个要点纪要之一的相关文章

iOS开发的52个要点纪要之二

6.可以用属性@property语法来定义对象中所封装的数据. 通过“特质”来指定存数数据所需的正确语义. 在设置属性所对应的实例变量时,一定要遵从该属性所声明的语义. 开发iOS程序时应该使用nonatomic属性,因为atomic属性会严重影响性能. 7.在对象内部读取数据时,应该直接通过实例变量来读,而写入数据时,则应通过属性来写. 在初始化方法及dealloc方法中,总是应该直接通过实例变量来读写数据. 有时会使用惰性初始化技术配置某份数据,这种情况下,需要通过属性来读取数据. 8.若要

iOS开发的52个要点纪要之三

11关于objc_msgSend的作用 其原型为:void objc_msgSend(id self, SEL cmd,...) objc_msgSend_stret 如果待发送的消息要返回结构体,交由此函数处理: objc_msgSend_fpret 如果消息返回的是浮点数,交由此函数处理: objc_msgSendSuper 如果要给超类发消息,交由此函数处理. 消息由接受者.选择子及参数构成.给某对象“发送消息(invoke a message)”也就相当于在该对象上“调用方法(call

iOS开发的52个要点纪要之五

21.理解Objective-C错误模型 @throw [NSException exceptionWithName:NSInternalInconsistencyException reason:@"must be overriden" userInfo:nil]异常只用于处理严重错误. 出现不那么严重的错误时,OC语言的编程范式为:令方法返回nil/0,或者使用NSError,表明其中有错误发生. -(id)initWithValue:(id)value{ if (self = [

iOS开发的52个要点纪要之四

16.提供“全能初始化方法” 在类中提供一个全能初始化方法,并于文档里指明.其他的初始化方法均应调用此方法. 如全能初始化方法与超类不同,则应覆写超类中的对应方法. 如果超类的初始化方法并不适用于子类,那么应该覆写这个超类方法,并在其中抛出异常. 17实现description方法 实现description方法,返回一个有意义的字符串,用于描述该实例 -(NSString *)description{ return [NSString stringWithFormat:@"<%@ :%p

用虚拟机搭建IOS开发环境的一些要点

1.光盘镜像需要下载懒人安装版,后缀是.cdr 2.虚拟机用VMware12或11都行,很多地方有下载 3.设置好光盘,启动虚拟机时,如果弹出错误“不可恢复错误:(vcpu-0)” 那么,只要找到并打开安装目录下的 XXXX.vmx 文件,使用记事本打开后,在 smc.present = "TRUE" 后添加“smc.version = 0”(建议复制,不包括引号)后保存,问题即可解决. 相关链接 http://jingyan.baidu.com/article/ff411625b90

iOS开发中的那些的约定俗成(1)————《编写高质量iOS与OS X代码的52个有效方法》读书笔记(第一章)

iOS开发中的那些的约定俗成(1) ----<编写高质量iOS与OS X代码的52个有效方法>读书笔记(第一章) 前言 "我要成为一个高产的开发人员.""想要混的好,就得多努力." 写这些东西是因为毕竟看了书,但是看书看过去之后,也许印象不是很深刻,有些东西现在也理解不了,那我就把我理解的,现在就可以用到的东西,简单的写出来就好,让自己今后看到就能明白其中的意思. 还有就是锻炼一下表达,编辑能力,慢慢的提升自己,随时随地的都要有一个锻炼的心. 最后当然就

iOS开发ARC内存管理技术要点

本文来源于我个人的ARC学习笔记,旨在通过简明扼要的方式总结出iOS开发中ARC(Automatic Reference Counting,自动引用计数)内存管理技术的要点,所以不会涉及全部细节.这篇文章不是一篇标准的ARC使用教程,并假定读者已经对ARC有了一定了解和使用经验.详细的关于ARC的信息请参见苹果的官方文档与网上的其他教程:) 本文的主要内容: ARC的本质 ARC的开启与关闭 ARC的修饰符 ARC与Block ARC与Toll-Free Bridging 技术交流新QQ群:41

iOS开发中的ARC内存管理de技术要点

本文旨在通过简明扼要的方式总结出iOS开发中ARC(Automatic Reference Counting,自动引用计数)内存管理技术的要点,所以不会涉及全部细节.这篇文章不是一篇标准的ARC使用教程,并假定读者已经对ARC有了一定了解和使用经验.详细的关于ARC的信息请参见苹果的官方文档与网上的其他教程:) 本文的主要内容: ARC的本质 ARC的开启与关闭 ARC的修饰符 ARC与Block ARC与Toll-Free Bridging ARC的本质 ARC是编译器(时)特性,而不是运行时

(转)iOS开发ARC内存管理技术要点

转自:http://www.cnblogs.com/flyFreeZn/p/4264220.html 本文来源于我个人的ARC学习笔记,旨在通过简明扼要的方式总结出iOS开发中ARC(Automatic Reference Counting,自动引用计数)内存管理技术的要点,所以不会涉及全部细节.这篇文章不是一篇标准的ARC使用教程,并假定读者已经对ARC有了一定了解和使用经验.详细的关于ARC的信息请参见苹果的官方文档与网上的其他教程:) 本文的主要内容: ARC的本质 ARC的开启与关闭 A