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;
作者:u011018979 发表于2017/9/13 17:19:10 原文链接
阅读:76 评论:0 查看评论