ObjectiveC 小记

ObjectiveC 小记

记录一些Objective-C的使用技巧和注意事项, 也算是对iOS开发生涯的总结~~~(in progress)

面向对象思想


面向对象和面向过程的区别

  1. 面向过程强调功能行为,关注解决问题需要哪些步骤 (所有过程亲力亲为)
  2. 面向对象将功能封装进对象,强调具备了功能的对象,关注的是解决问题需要哪些对象 (找到具有对应功能的对象,让对象去做事情)

面向对象思想在完成需求中的运用

先去找具有所需功能的对象来用, 如果该对象那个不存在,那么创建一个具有该功能的对象

类与对象

对象是由类创建的,因此应先考虑设计哪些类,再考虑用类创建哪些对象

类的设计

描述一个类,主要描述该类的属性和行为,即成员变量和成员方法

类的分析

  1. 一般名词都是类
  2. 拥有类似属性和行为的对象可以抽象成一个类
  3. OC中类的本质是一个结构体

类的声明

  1. 类的声明以@interface开头,以@end结尾,写上类名和继承的类,类名首字母大写,告诉系统类中有哪些属性和行为
  2. OC类声明中属性只能写在interface和end中的大括号中,建议将属性名称前面都加上 “_”

类的实现

  1. 以@implement开头,以@end结尾
  2. 类中方法的实现

对象的创建

  1. 用类创建对象,必须给类发送一个消息
  2. 如何发送消息 [类名称/对象名称 方法名称]
  3. 发送什么消息 new
  4. 用什么保存新创建的对象 指针

对象方法

  1. 减号开头
  2. 只能由对象调用

类方法

  1. 加号开头
  2. 只能由类,即用类名调用
  3. 某个功能经常被使用,避免每次为了使用该方法而开辟新对象浪费存储空间,可将它声明为类方法

注意事项

  1. OC中的”()“是专门用来扩住数据类型的, 如 - (int)signal:(int) number;

类方法和对象方法的区别

  1. 对象方法必须由对象调用,类方法必须由类调用
  2. 类方法中不能直接访问该类的属性变量,对象方法可以直接访问类的属性变量
  3. 类方法的调用效率会比调用对象方法高
  4. 类方法和对象方法可以相互调用

    对象方法中可以直接调用类方法

    类方法中可以直接调用对象方法

    类方法中可以直接调用类方法

    对象方法中可以直接调用对象方法

主头文件 <Foundation/Foundation.h>


  1. 主头文件中拷贝了该工具箱中所有工具的头文件,只需导入主头文件就可使用该工具箱中所有的工具,避免每次使用都要导入一个对应头文件。

  2. OC是C语言的超集,相当于在C语言上增加了面向对象的部分,因此C语言程序,C++程序可以在OC项目中编译。

property参数


  1. 成员变量前加@property,系统会自动生成getter/setter方法
  2. 加上retain,系统自动生成getter/setter方法,但是需要重写dealloc方法
  3. 默认情况下是assign

Comments