码迷,mamicode.com
首页 > 其他好文 > 详细

Objuct-c 对象的初始化 存起器 属性 self和super 内存管理

时间:2015-12-12 18:51:50      阅读:174      评论:0      收藏:0      [点我收藏+]

标签:

 

 对象初始化:

-(id)init;万能类型,能返回各种对象,可能会导致类型错误。

-(instancetype)init;当前类的类型(推荐大家选)

 

 

技术分享

 if的判断语句中self是等于[super init]而不是判断,初始化失败的话就返回空 ,这时返回0给self自己,自己就变成空对象。

指定初始化方法

 一般是参数最多的一种初始化方法:

技术分享

其他初始化都直接间接调用指定初始化,出现错误以后可以直接从指定初始化中找出错误。

一个类需要一个指定初始化方法。

存取器方法:

技术分享

 

get的方法和实例变量同名。

set是设置的方法,方法名命的格式set实例变量名。

有了存取器的方法,可以使用点语法,两种方法等价。

[实例变量名 name] 或者 实例变量名. name。

点语法是为了减少程序员编写的时间,本质不变。

设置了了set方法以后,也可以用点语法。

只有get和set方法能点语法。其他语法只能用[]

 

属性声明

技术分享

技术分享

点H文件中

@poroperty(nonatomic,retain)NSString* name...

点M文件中synthesize name....

在synthesize age_oldage,这样就可以在main文件中直接用oldage = 10;但是self.age只能这么用,两者等同于[self setoldage:10];

@poroperty()括号中的词

线程相关的

1、原子性 atomic (默认)(一般使用这个)

2、非原子性 nonatomic

读/写

1、readonly只产生getter方法,不生成setter的方法

2、readwirte (默认)都会产生读取和设置的方法

在获取和设置方法中,可以用getter和setter设置得到和设置的设置名:

@property(nonatomic,getter = getNo,setter = setNo:)NSString* sid

[zhang setNo:@"111"]

得到他的值的

zhang.getNo

 4.6版本以后

可以不声明实例变量,只声明属性,声明属性后会自动声明实例变量

 

 

 

 

 

 

 

 

 

 

seif和super

把具体实例方法绑定到对象的是self

技术分享

内存管理规则

Objuct-c 对象的初始化 存起器 属性 self和super 内存管理

标签:

原文地址:http://www.cnblogs.com/naizui/p/5034205.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!