• Objective


    在之前, 我们知道了成员变量有多少种作用域, 在默认的@protected需要声明setter方法和getter方法, 这样子才能访问我们的成员变量, 但问题来了, 挖掘机技术哪家....扯远了, 虽然setter方法和getter的确是成功的访问到我们需要的成员变量, 但不好用, 因为需要写的东西太多了, 而且还没有技术含量, 那么如何解决呢??


    例子:



    只要在声明的时候写上@property加上成员变量名之后, 那么就可以生成相应的settergetter方法声明.

    PS:注意, 千万不要在@property的成员变量名里加任何的符号, 否则在调用的时候就要添加对应的符号, 这个和声明成员变量有一些区别.



    那有人会问, 如果有两个同名的成员变量呢? 那怎么区别它们? 别急, 我们继续往下说:


    重点来了, 如果说@property是用来声明settergetter方法, 那么@synthesize就是用来实现settergetter方法, 而且, 在@synthesize后面把你要实现相应方法的成员变量添加, 这样子我们就知道了需要添加哪个成员变量了.



    在这里@property@synthesize还可以这么用:



    只要是同种类型的成员变量, 在@property@synthesize里就可以一行代码解决, 只要中间加上逗号就可以了(建议还是分开写, 这样保证代码的可读性).


    PS:其实可以不用写@synthesize的, 因为从以前的Xcode开始, @property就包揽了@synthesize的功能, 所以可以忽略不写.




    但在Xcode里, 它会为我们做的东西有些多, 比如:



    在这里, 我把成员变量给注释了, 但Xcode并没有报错, 而且还可以保存我们存入的数据, 这是因为Xcode发现我们使用了@property@synthesize, 如果我们没有声明相应的成员变量, 那么Xcode就会帮我们生成相应的成员变量以供我们使用.









    好了, 这次我们就讲到这里, 下次我们继续~~~~

  • 相关阅读:
    用SNMP协议实现系统信息监控--Windows Server 2008
    Apache与Tomcat区别联系
    Oracle数据库的创建与验证
    oracle监听服务开启
    【VS Code 开发工具】在VS Code中使用Markdown语法
    【SQLServer数据库】SQLServer分库分表
    【SQLServer数据库】SQLServer死锁与优化
    【SQLServer数据库】SQLServer悲观锁和乐观锁
    【HTTP】HTTP Body
    【SQLServer数据库】SQLServer视图
  • 原文地址:https://www.cnblogs.com/iOSCain/p/4282841.html
Copyright © 2020-2023  润新知