ObjectiveC 小记
记录一些Objective-C的使用技巧和注意事项, 也算是对iOS开发生涯的总结~~~(in progress)
面向对象思想
面向对象和面向过程的区别
- 面向过程强调功能行为,关注解决问题需要哪些步骤 (所有过程亲力亲为)
- 面向对象将功能封装进对象,强调具备了功能的对象,关注的是解决问题需要哪些对象 (找到具有对应功能的对象,让对象去做事情)
面向对象思想在完成需求中的运用
先去找具有所需功能的对象来用, 如果该对象那个不存在,那么创建一个具有该功能的对象
类与对象
对象是由类创建的,因此应先考虑设计哪些类,再考虑用类创建哪些对象
类的设计
描述一个类,主要描述该类的属性和行为,即成员变量和成员方法
类的分析
- 一般名词都是类
- 拥有类似属性和行为的对象可以抽象成一个类
- OC中类的本质是一个结构体
类的声明
- 类的声明以@interface开头,以@end结尾,写上类名和继承的类,类名首字母大写,告诉系统类中有哪些属性和行为
- OC类声明中属性只能写在interface和end中的大括号中,建议将属性名称前面都加上 “_”
类的实现
- 以@implement开头,以@end结尾
- 类中方法的实现
对象的创建
- 用类创建对象,必须给类发送一个消息
- 如何发送消息 [类名称/对象名称 方法名称]
- 发送什么消息 new
- 用什么保存新创建的对象 指针
对象方法
- 减号开头
- 只能由对象调用
类方法
- 加号开头
- 只能由类,即用类名调用
- 某个功能经常被使用,避免每次为了使用该方法而开辟新对象浪费存储空间,可将它声明为类方法
注意事项
- OC中的”()“是专门用来扩住数据类型的, 如 - (int)signal:(int) number;
类方法和对象方法的区别
- 对象方法必须由对象调用,类方法必须由类调用
- 类方法中不能直接访问该类的属性变量,对象方法可以直接访问类的属性变量
- 类方法的调用效率会比调用对象方法高
- 类方法和对象方法可以相互调用
对象方法中可以直接调用类方法
类方法中可以直接调用对象方法
类方法中可以直接调用类方法
对象方法中可以直接调用对象方法
主头文件 <Foundation/Foundation.h>
主头文件中拷贝了该工具箱中所有工具的头文件,只需导入主头文件就可使用该工具箱中所有的工具,避免每次使用都要导入一个对应头文件。
OC是C语言的超集,相当于在C语言上增加了面向对象的部分,因此C语言程序,C++程序可以在OC项目中编译。
property参数
- 成员变量前加@property,系统会自动生成getter/setter方法
- 加上retain,系统自动生成getter/setter方法,但是需要重写dealloc方法
- 默认情况下是assign