9.10问题总结

1.1.创建一个Person类,里面有名字、年龄、生日、地址等属性。(自己去完成setter、getter方法的重写,去了解@property里的每一个关键字的含义

9.10问题总结_第1张图片

MRC模式下:

9.10问题总结_第2张图片

2。copy和retain的区别。

(1)copy是创建一个新对象,两个对象内容相同。新的对象retain为1,旧对象的引用计数不变。旧对象发生改变不影响新对象,copy减少对象对上下文的依赖。
(2)retain属性表示两个对象地址相同(建立一个指针,指针拷贝),内容相同,这个对象的retain值+1。两个对象要改变就一起改变。
(3)如果把一个对象赋值给另一个对象,如果该对象是不可变的,那么另一个对象是copy或者retain都可以,没区别;如果该对象是可变的,并且两个对象一起改变,则可以把另一个对象设置为retain。;如果希望另一个对象不随着该对象变化而变化,则可以把另一个对象设置为copy。

问题???

3.创建一个可以copy的类

9.10问题总结_第3张图片
OC中copy的作用是:利用一个源对象产生一个副本对象
特点:1、修改源对象的属性和行为,不会影响副本对象;
2、修改副本对象的属性和行为,不会影响源对象。
9.10问题总结_第4张图片

4.重写init方法。

9.10问题总结_第5张图片
1. [super init]的作用:
面向对象的体现,先利用父类的init方法为子类实例的父类部分属性初始化。(NSObject类中的属性)
2. self 为什么要赋值为[super init]:
简单来说是为了防止父类的初始化方法release掉了self指向的空间并重新alloc了一块空间。这时的话,[super init]可能alloc失败,这时就不再执行if中的语句。

7.你定义一个字符串,用类方法,实例方法,还有常量赋值各初始化一次,你告诉我每个字符串的retaincount是多少

9.10问题总结_第6张图片

你可能感兴趣的:(9.10问题总结)