A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 谁想去飞 中级黑马   /  2014-12-11 22:50  /  540 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

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

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马