您的位置:首页 > 其它

重写setter与getter方法以及其使用情况

2015-10-02 20:46 232 查看
1.setter方法:

对成员变量进行赋值,相当于写入操作;是为了从外部类得到一个参数,赋值给内部变量;其函数名必须以set开头,必须有一个参数;

例子:- (void)SetName:(NSString *)newName

{

_name = newName;把外部类传过来参数赋值(写入)给内部变量。

}

2.getter方法:

对成变量进行取值操作,函数必须有返回值,且函数名是内部变量名;

例子:- (NSString *)name

{

return _name;把内部变量返回给调用的地方。

}

3.属性:@property (nonatomic,copy) NSString *name;属性内部自动生成(封装)setter和getter方法。

4.如果变量,属性写在头文件(h文件)中,另一个类可以通过 属性来访问变量,如果写在实现文件(m文件),则只属于当前类,外部内不能访问,可以达到私有变量的目的。

5.关于类之间的循环保留而导致的死循环:如果Car类保留了(拥有)Engine类engine对象(正常情况是这样),但是如果Engine类也保留(拥有)了Car类的car对象,就会导致保留死循环使引用计数器发生故障,因为引用计数器永远不会归零,也不会被释放。除非engine对象释放了car对象,Car类的dealloc方法才会调用,但是car对象的dealloc方法没有调用的话,engine对象也不会释放,他们就一直相互等待对方释放,造成了死循环。所以一般的持有规则是:所有者对象保留被拥有者的对象,反之则不行。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: