1、属性的内部实现原理
1.assign属性的语义特性及使用范围
Person.h 文件
assign的内部实现(会出面试题)
//在内存被系统回收以后,还在使用,容易产生野指针问题(例子以下)。
//assign适合基本数据类型,基本数据类型不会引发内存问题。
2.retain属性的使用
retain属性的实现细节
在调用过程当中想清楚过程
注意:(实现的过程)
3.copy属性的使用
copy适用于接受了NSCopying协议的对象,由于只有接受了NSCopying协议,对象才能执行copy操做
copy的实现细节(注意里面对于内存的管理)
用内存管理的方式解析copy
注意:思路详解
2、dealloc内释放实例变量
- 什么是dealloc?
dealloc是NSObject的一个实例方法,与alloc对应用于回收开辟的内存空间
这个方法在对象引用计数为0时,由系统自动调用
一般咱们在dealloc中释放类的实例变量
- 如何使用dealloc?
// Person.m中面试
- (void)deallocspa
{3d
[_name release]; // 释放setter方法泄露的指针
[super dealloc];orm
}对象
- dealloc注意事项:
永远不要手动调用dealloc
在dealloc方法的最后一行,必需要写[super dealloc];
3、便利构造器方法的实现原理
// 遍历构造器在使用的过程当中要注意对内存的管理
//遍历构造器的格式注意,同时在使用时要与初始化配合使用
return [p autorelease];是最完美的解决方案,既不会内存泄露,也不会产生野指针
注意:在遍历构造器的内部已经用autorelease进行了内存的释放管理,因此再使用release进行释放,会引发过分释放问题
4、collection的内存管理
1>.collection:collection就是NSArray,NSDictionary,NSSet...等容器类
collection会自主管理本身内部的元素
2>.加入collection中的对象会被retain继承
3>.移除出collection的对象会被release接口
4>.collection被释放会对内部全部对象release内存
五.多态it
1>.多态的含义:早上我和同事说口渴,想喝水。结果:A同事拿着个人杯子去给我接了一杯水。B同事顺手在饮水机上拿了一次性纸杯给我接了杯水。C同事给了我一瓶他早上刚买的饮料。同事获得的是一样地请求,可是三我的都有各自的解决办法,这就是多态。
多态就是不一样对象在响应同一个请求时候不一样的实现。父类指针能够指向子类对象。
2>.多态的特色:
a. 父类指针能够指向不一样的子类对象
b. 容许在多个类中定义同一个消息接口
c. 能够屏蔽不一样的子类之间的差别,能够通用代码
d. 适应需求的不一样变化
实例分析:
定义Animal类,和它的子类,Cat、Dog类:
Animal.h文件

Animal.m文件

cat.h文件(继承于Animal)
cat.m文件

dog.h文件(继承于Animal)

dag.m文件
main.m文件(父类的同一方法,父类和多个子类能够同时响应,这就是多态)
