ios 同时重写setter和getter方法
2017-11-23 13:54
2416 查看
写了那么多的代码了,平时也没有怎么注意会报这个错误,因为平时都很少同时重写setter和getter方法,一般的话,我们大概都是使用懒加载方法,然后重写getter方法,做一个非空判断。然后有时候根据需求,要同时重写属性的setter和getter方法。系统就会报错误::Use of undeclared identifier '_name';did you mean 'name' MARK:如果不想了解太多,直接的解决方法:在@implementation 实现中添加一行代码就OK了@synthesize wtName = _wtName; 详解一下:OC最初设定@property和@synthesize的作用:
@property的作用是定义属性,声明getter,setter方法。(注意:属性不是变量)
@synthesize的作用是实现属性的,如getter,setter方法.在声明属性的情况下如果重写setter,getter,方法,就需要把未识别的变量在@synthesize中定义,把属性的存取方法作用于变量。如:.h文件中后来因为使用@property灰常频繁,就简略了@synthesize的表达。
从Xcode4.4以后@property已经独揽了@synthesize的功能主要有三个作用: (1)生成了私有的带下划线的的成员变量因此子类不可以直接访问,但是可以通过get/set方法访问。那么如果想让定义的成员变量让子类直接访问那么只能在.h文件中定义成员 变量了,因为它默认是@protected (2)生成了get/set方法的实现 当: 用@property声明的成员属性,相当于自动生成了setter getter方法,如果重写了set和get方法,与@property声明的成员属性就不是一个成员属性了,是另外一个实例变量,而这个实例变量需要手动声明。所以会报错误。
总结:一定要分清属性和变量的区别,不能混淆。@synthesize 声明的属性=变量。意思是,将属性的setter,getter方法,作用于这个变量。
原文链接https://www.cnblogs.com/handsomeBoys/p/5672352.html
相关文章推荐
- iOS积累-为什么使用属性之后, 同时重写setter,getter方法会报错
- iOS中@Property声明的属性同时重写getter和setter方法报错问题
- 同时重写属性的getter/setter方法和readonly的使用
- property生成属性的时候,同时重写setter与getter方法,那么实例变量不自动生成
- OC 语言- 同时重写setter方法或者getter方法会报错
- iOS-OC为什么需要重写setter或getter方法?
- 同时重写getter、setter方法,Use of undeclared identifier错误
- 关于iOS中属性变量setter与getter方法的理解
- iOS开发核心语言Objective C —— 面向对象思维、setter和getter方法及点语法
- ios基础之属性set get方法同时重写报错的问题
- iOS开发之getter与setter方法
- 关于重写getter的方法和setter方法
- Objective-C,ios,属性声明(property declarations), 自定义属性,自动生成 get 和 set 方法,getter 和 setter
- MRC下setter、getter方法写法、重写dealloc方法
- iOS开发学习第十四课——实例变量可见度、方法、setter、getter
- iOS开发UI篇-懒加载、重写setter方法赋值
- iOS开发--线程同步的getter与setter方法
- IOS-getter和setter方法
- 《ios_oc》重复引用、交叉引用、可见度、方法,setter、getter、自定义初始化init的修改
- iOS setter 与 getter方法