您的位置:首页 > 其它

getter,setter都要重写

2017-09-13 17:19 183 查看

1.objective-c下如果某属性的getter,setter都要重写的话

需要加上@synthesize propertyName = _propertyName;


// 合成指令,主动指定属性使用的成员变量名称
@synthesize image = _image;


//@synthesize iconF = _iconF;

/**
一旦重写了readonly属性的getter方法,_的成员变量就不存在了

如果还需要使用_成员变量,则需要使用@synthesize生成对应的成员变量
*/
//- (CGRect)iconF
//{
//
//}


@synthesize iconImage = _iconImage;//与readOnly 关键字配合使用


/**
问题: 使用readonly修饰成员变量的话,将不会生产带下划线的成员变量 undeclared identifier '_image',
解决方法如下:@synthesize 合成指令 --主动指定属性使用的成员变量名称
*/

@synthesize image =_image;//@synthesize 中可以定义 与变量名不相同的getter和setter的命名,籍此来保护变量不会被不恰当的访问


2、点 . 使用 :
-- 使用前提 : 使用 @property @synthesize 合成 setter 和 getter 方法; 实际上 也允许使用 . 语法访问属性 和 对属性赋值;
-- 本质 : 点语法是一种简单写法, 其本质仍然是 getter 和 setter 方法;
-- 获取属性值 : 只要对象有 getter 方法, 程序可以使用 点 语法获取属性值;
-- 设置属性值 : 只要对象 setter 方法, 程序可以使用 点 语法获取属性值;

---------    KVC    ---------
3.KVC 简介 :
-- 引入 : Object-C 可以通过 getter setter 方法操作属性, 还可以 以字符串形式间接操作属性, 该方式是 Key Value Coding (KVC);
-- KVC 使用前提 : 最好在接口部分使用 @property 实现类部分使用 @synthesize 合成存取方法, 也可以只定义 "_属性名" 或 "属性名" 成员变量, 之后才能成功使用 KVC;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: