Part-01:
1、OC的历史及简介
2、如何创建一个OC的工程
3、OC的Hello World程序
4、OC的语法格式的区别
5、类与对象
1、类:包含数据成员和函数成员的集合,是程序员自己创造的又一种数据类型
2、对象:类这种类型定义的变量
3、分割文件:.h(声明) 和 .m(实现) 文件
4、带多个参数的方法如何定义
Part-02:
1、类与对象(续)
1、如何定义私有方法:不在.h中声明,在.m中直接定义的方法
2、成员变量(类当中说明的方法)与实例变量(类定义的对象,对象里有的内容)
3、成员变量的访问权限(私有,保护,包,公有)
4、属性的简化
5、无参初始化方法 -(id)init
6、带参初始化方法 -(id)initWith...
7、id 类型:仅能指向对象的地址,不能指向基本数据类型变量的地址
8、self:是一个指针,哪个对象调用方法就指向哪个对象,其作用是区分不同对象。
指向的是当前类的对象
9、super:也是一个指针,指向当前类的对象中父类的成员
10、实例方法:是用-号定义的方法,用对象调用的方法
(方法就是函数,区别是:方法是类中的函数)
11、类方法:是用+号定义的方法,用类名来调用类方法
Part-03:
1、类与对象(续)
1、无参工厂方法
2、带参工厂方法
3、单例模式:只能生产一个对象的工厂方法
4、引用计数(MRC)
1、概念:系统添加的计数器
2、retain方法:引用计数器+1
3、release方法:引用计数器-1
4、野指针:指向公共区域的指针
5、空指针:赋值成nil的指针
6、属性(@property)与引用计数
1、assign(和retain相对)、readonly、【atomic(安全)、nonatomic(不安全)多线程安全性】
7、autorelease
Part-04:
1、继承 一般在多态的时候使用继承
1、概念:继承实际上是一种代码复用技术,(is a)的关系
2、派生:指的是在子类中添加新的属性和方法
3、重写:子类对父类的方法不满意时可重写父类中的方法
3、隐藏:当子类重写父类的方法后,子类中将有两个同名的方法,
而从父类中继承的方法被隐藏起来不能被调用
2、整体与部分
1、组合:是一种类之间的(contains a)的关系,要求两个类同生共死;不是继承的关系(例:动物和头)
2、聚合:是一种类之间的(has a)关系,它不要求两个类同生共死;不是继承的关系(例:电脑和显示器)
3、优点:低耦合,继承是高耦合
4、缺点:涉及的类太多
3、多态 必须得使用继承
1、概念:一个对外接口,多个内在实现
2、参数多态
3、数组多态
4、返回值多态
Part-05:
1、协议(一对多) 可以定义属性和方法,必须在达成协议的类里才能实现
1、定义协议
2、required和optional关键字
3、协议的继承
1、可以同时继承多个协议 *OC的类只能单继承 *一个协议可以对应多个类
4、协议数组
5、协议参数
6、协议返回值
2、分类(一对一) 一个分类只能依附一个主类
1、分类的定义
2、分类的使用,像没有分类一样直接使用这个类
3、注意:在分类中不能有实例变量或属性,但是在扩展中可以定义
3、扩展(*定义扩展和定义分类一样,只是没有名字,但可以有实例变量或属性
*扩展没有.m文件,分类有.m文件;扩展中声明的方法必须在主类的.m文件中实现)
1、定义:没有名字的分类
2、扩展当中可以有实例变量和属性(与分类的区别)
Part-06:
1、ARC
1、什么是ARC,iOS 5.0以后开始使用,iOS 7.0以后强制使用
2、MRC与ARC的区别:
1、ARC中不用写retain,release,autorelease,dealloc
3、strong<=>retain
4、weak<=>assign
5、其他修饰符
1、__unsafe_unretian
2、__autoreleaseing
6、由MRC转换成ARC的方法:
edit->Convert->To Objective-C ARC
7、混编选项:-fno-objc-arc 标志着文件不适用ARC
2、NOObject类
1、alloca,init,new,dealloc
2、copy(深拷贝):深拷贝可以避免野指针和内容被修改的问题
1、遵守协议NSCopying
2、在需要深拷贝的类中添加-(id)copyWithZone:(NSZone*)zone方法
3、使用copy方法实现深拷贝
4、属性参数可以是copy,此时对属性的赋值将进行深拷贝
3、类对象:用于判断一个对象(stu)是否是指定类(DJTeacher)的对象
4、比较类信息
1、isKindOf是否为指定类及其父类们的对象
2、isMemberOf仅判断对象s是否为指定类的对象,不判断指定类的父类
3、isSubclassOf是判断一个类是否是另一个类的子类,它是一个类方法
Part-07:
1、NSObject(续)
1、方法选择器
2、协议选择器
2、NSString
1、对象创建(3种)
2、分割(3种)
3、拼接(3种)(结果是一个新的字符串)
4、替换(1种)(该替换完成后生成新的字符串)
5、用文件内容创建字符串
3、NSMutableString(可变字符串)
1、对象创建(4种)
2、在字符串中添加内容(使字符串变长)(字符串本身长度变长)(两种)
3、在字符串中删除内容(使字符串变短)(一种)
4、替换(该替换完成后只是更改了原字符串)(一种)
4、NSNumber
1、用于封装C语言的基本数据类型,成为一个 Objective-C 的类的对象
(OC的数组元素不允许是C的基本数据类型变量)