iOS积累-为什么使用属性之后, 同时重写setter,getter方法会报错
2017-06-27 17:02
579 查看
今天有一个初学者遇到一个问题,就是使用property的时候,同时重写set get方法会报错,如
#import <UIKit/UIKit.h> @interface ViewController : UIViewController{ } @property (nonatomic, copy) NSString *name; - (void)setName:(NSString *)name; - (NSString *)name; @end
单独重写任意一个方法都不会报错,但是同时重写的话,会报错!
首先,我们声明属性的时候, 会默认给声明的属性写好setter,getter方法.
当你复写了get和set方法之后@property默认生成的@synthesize就不会起作用了,这也就意味着你的类不会自动生成出来实例变量了,你就必须要自己声明实例变量, 简而言之就是: 你同时写的话,系统没法就不会把你重写的变量当成你属性声明的变量. 当成属性如下:
这时就不会报错了。
#import <UIKit/UIKit.h> @interface ViewController : UIViewController{ } @property (nonatomic, copy) NSString *name; - (void)setName:(NSString *)name; - (NSString *)name; @end
单独重写任意一个方法都不会报错,但是同时重写的话,会报错!
首先,我们声明属性的时候, 会默认给声明的属性写好setter,getter方法.
当你复写了get和set方法之后@property默认生成的@synthesize就不会起作用了,这也就意味着你的类不会自动生成出来实例变量了,你就必须要自己声明实例变量, 简而言之就是: 你同时写的话,系统没法就不会把你重写的变量当成你属性声明的变量. 当成属性如下:
这时就不会报错了。
相关文章推荐
- 同时重写属性的getter/setter方法和readonly的使用
- iOS中@Property声明的属性同时重写getter和setter方法报错问题
- iOS-OC为什么需要重写setter或getter方法?
- OC 语言- 同时重写setter方法或者getter方法会报错
- property生成属性的时候,同时重写setter与getter方法,那么实例变量不自动生成
- ios 同时重写setter和getter方法
- 同时重写getter、setter方法,Use of undeclared identifier错误
- 关于iOS中属性变量setter与getter方法的理解
- Objective-C,ios,属性声明(property declarations), 自定义属性,自动生成 get 和 set 方法,getter 和 setter
- ios基础之属性set get方法同时重写报错的问题
- 重写setter与getter方法以及其使用情况
- iOS - 重写set和get方法后,为什么使用时会发生无效?解析命名规范
- iOS上的safrai不支持使用关键字作为对象属性名称或方法名称
- Java的setter方法和getter方法的使用
- ID的生成策略(hibernate的id生成策略,主键类为什么需要实现序列化接口,同时还要重写hashCode()和equals()方法)
- 重写equals方法的同时为什么要重写hashcode方法
- IOS model的getter和setter方法
- IOS-getter和setter方法
- iOS开发--线程同步的getter与setter方法
- 给内置对象或自定义对象添加存取器属性(getter setter)的方法总结