oc 第三天 self
、self关键字
代表当前对象或者当前类。
1.在实例方法中的self,通常来讲就是代表当前对象。
2.在类方法中的self,通常来来讲就是代表当前类。
五、编程规范
1.标识符
给变量、函数、类、方法、常量等起名字。
a.必须以_和字母开头
b.只能包含数字、_和字母
c.不能与关键字冲突
d.大小写敏感
e.长度是不限的
2.命名规范
a.类、分类、扩展、协议等类型起名时,一般加前缀(2~3个字母组成),并且每个单词的首字母大写。
b.驼峰标识:如果标识符由多个单词组成,每个单词的首字母大写。
c.属性、方法、变量的首字母小写,其后的每个单词的首字母大写。
d.常量一般大写,单词之间"_"隔开。
数字和字符是常量外,
const int MAX_NUM = 10;//常量
3.OC特有的代码风格
a.无参的初始化方法,"init"命名,有参的以"initWith … "开头。eg:
[[TRStudent alloc]init];
[[TRStudent alloc]initWithAge:18 andSex:'M'];
b.工厂方法,以小写的类名开头,有参的工厂方法,"小写类名With"开头。
[TRStudent student];
[TRStudent studentWithAge:18 andSex:'M'];
c.其它
一般方法的方法名不能以new开头,new开头的方法基本上是用来创建对象的。
4.补充
a.代码的结构性,一定要缩进。
(command(win)+a全选,control(ctrl)+i自动代码缩进)
b.当一个方法比较长时,可以用空行的方式,将方法分成几个模块。
六、内存管理
1.进程空间
代码区:只读。
*堆:自己创建、自己回收释放,对象是保存在堆区的。
全局区:进程启动时分配,进行结束时释放。
栈:局部变量,自动创建、自动释放空间
内存管理:主要对堆内存进行管理,所谓的管理,内存的分配(创建)和释放(回收)。
2.IOS的内存管理方式
RC:Reference(引用)Counting(计算器)
a.MRC Maual手动
b.***ARC Automatic自动
3.MRC(手动内存管理)
a.每个对象都有自己的引用计数器,引用计数器是用来计算对象被引用的次数。
b.创建对象时(alloc、new),此时通知引用计数器为1 。
c.当你需要使用一个别人创建好的对象时,为了防止在使用此对象期间别人释放了这个对象,我们要将此对象的引用计数器加1(程序员通知引用计数器),只要给对象发送retain消息,引用计数器就会加1.
d.当你使用的对象不再使用时,你有责任通知引用计数器减1,发送release消息。
e.当对象的引用计数器为0时,说明已经没有任何引用指向对象,对象就会被系统自动销毁,系统销毁对象之前,会自动向对象发送一条消息"dealloc"消息,对象所占的空间就会被释放[super dealloc],千万不要自己去调用dealloc消息。
f.可以使用"retainCount消息",查看当前引用计数器的值。
g.当你指向的对象,不再使用时,如果忘了发送release消息,内存泄漏。(资源浪费)
h.当引用指向对象,已经不存在了,继续向对象发送消息,会发生问题,异常、crash
i.没有相应内存空间的指针,野指针。
j.会使用空指针,解决野指针问题,而在OC中,向空指针发送消息,是不会报错的。stu = nil;(C语言中 stu = NULL)
1.声明->类
TRCpu TRMEM TRComputer(TRCpu TRMem)
初始化方法 工厂方法
2.使用->类实例化对象
向对象发送消息 .结果屏幕输出结果
3.内存管理MRC |
|