啊嘴  

 

 对象初始化:

-(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

内存管理规则

posted on 2015-12-12 18:01  啊嘴  阅读(302)  评论(0)    收藏  举报