getter,setter都要重写

来源:互联网 发布:数据可视化的产品目标 编辑:程序博客网 时间:2024/06/05 06:56

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;