iOS学习笔记整理1

1.@property 声明属性:

例如:@property NSString *name;

2.使⽤用@synthesize实现属性

例如:@synthesize name = _name;

3.ARC( Auto Reference Count:自动引用计数 )来代替之前的MRC(Manual Reference Count:手动引用计数)。

4.iOS没有垃圾回收装置

5.iOS⽀支持两种内存管理⽅方式:ARC和MRC。

MRc的内存管理机制是:引⽤用计数。

ARC是基于MRC的。

6.+alloc:开辟内存空间,让被开辟的内存空间的引⽤用计数变为1。这是由0到1的过程。

7.     -retain:引⽤用计数加1,如果内存空间之前引⽤用计数为1,ratain之后变为2,如果引⽤用计数是5,retain之后变为6。

-copy把某一内存区域的内容拷贝一份,拷贝到新的内存空间里去,被拷贝区域的引用计数不变,新的内存区域的引用计数为1

-release引用计数减1,如果内存空间之前引用计数为4,release之后变为3,如果之前引用计数为1,release之后变为0,内存被系统回收

-autorelease:未来的某一时刻引用计数减1.如果内存之前引用计数为4,autorelease之后仍为4,未来某个时刻会变为3.

6.如果属性是非对象类型(比如int ,float等)属性的语义设置使用assign。如果属性是对象类型(比如nsstring 、nsarray 等)属性的语义设置使用retain。如果属性是对象类型并且想得到参数的copy,使用copy关键字

应用:@property 最新的X-cold的可以省略实例变量 与 setter getter方法

7.在一个类中声明属性@property NSString *name;

相当于在 .h 文件声明了实例变量_name的setter、getter方法

在一个类中声明@synthesize name = _name;

相当于在.m文件实现了实例变量_name的setter、getter方法

声明一个属性,相当于声明一个“_name”,在属性名前面加_ 的实例变量

注意1:在需要重新同时重写setter、getter方法的实现的时候,需要写

@synthesize name = _name;不然只需要写 @proprrty NSString *name编译器就会自动生成setter、getter方法的声明和实现

注意2:属性就是一对setter、getter方法

8.引⽤用计数的增加和减少相等,当引⽤用计数降为0之后,不应该再使⽤用这块内存空间。

凡是使⽤用了alloc、retain或者copy让内存的引⽤用计数增了,就需要使⽤用release或者autorelease让内存的引⽤用计数减少。在⼀段代码内,增加和减少的次数要相等。

9.取两个时间对象的间隔:

NSTimeinterval = [tomorrowDate

timeIntervalSinceDate:

yesterdayDate];

10.category

a.只能为类添加方法;

b.新添加的方法会成为原始类的实例

11.extension

a.相当于把 .h 文件挪到 .m里面

b.管理类的私有方法

12.protocol 协议

a。协议是一套标准,只有.h 文件就像一张任务清单,上面写了一堆需要处理的事情。清单交给谁 ,谁就要去完成上面规定的任务。

b、协议里面:有两种实现方式 :

1.默认方式是:@required

2.可选择的是:@optionnal

13.dealloc是NSObject的⼀一个实例⽅方法,与alloc对应,⽤用于回收开辟的内存空间

你可能感兴趣的:(iOS学习笔记整理1)