在之前, 我们知道了成员变量有多少种作用域, 在默认的@protected需要声明setter方法和getter方法, 这样子才能访问我们的成员变量, 但问题来了, 挖掘机技术哪家....扯远了, 虽然setter方法和getter的确是成功的访问到我们需要的成员变量, 但不好用, 因为需要写的东西太多了, 而且还没有技术含量, 那么如何解决呢??
例子:
只要在声明的时候写上@property加上成员变量名之后, 那么就可以生成相应的setter和getter方法声明.
PS:注意, 千万不要在@property的成员变量名里加任何的符号, 否则在调用的时候就要添加对应的符号, 这个和声明成员变量有一些区别.
那有人会问, 如果有两个同名的成员变量呢? 那怎么区别它们? 别急, 我们继续往下说:
重点来了, 如果说@property是用来声明setter和getter方法, 那么@synthesize就是用来实现setter和getter方法, 而且, 在@synthesize后面把你要实现相应方法的成员变量添加, 这样子我们就知道了需要添加哪个成员变量了.
在这里@property和@synthesize还可以这么用:
只要是同种类型的成员变量, 在@property和@synthesize里就可以一行代码解决, 只要中间加上逗号就可以了(建议还是分开写, 这样保证代码的可读性).
PS:其实可以不用写@synthesize的, 因为从以前的Xcode开始, @property就包揽了@synthesize的功能, 所以可以忽略不写.
但在Xcode里, 它会为我们做的东西有些多, 比如:
在这里, 我把成员变量给注释了, 但Xcode并没有报错, 而且还可以保存我们存入的数据, 这是因为Xcode发现我们使用了@property和@synthesize, 如果我们没有声明相应的成员变量, 那么Xcode就会帮我们生成相应的成员变量以供我们使用.
好了, 这次我们就讲到这里, 下次我们继续~~~~