假设将synthesize省略,语义特性声明为assign retain copy时,自己实现setter和getter方法[通俗易懂]

假设将synthesize省略,语义特性声明为assign retain copy时,自己实现setter和getter方法

大家好,又见面了,我是全栈君。


假设将synthesize省略,而且我们自己实现setter和getter方法时,系统就不会生成相应的setter和getter方法,还有实例变量

1,当把语义特性声明为assign时,setter和getter时方法内部实现

– (void)setName:(NSString *)name{
   _name = name;
}
– (NSString *)name{
   return _name;
}

2,当把语义特性声明为retain时,setter和getter方法内部实现

– (void)setName:(NSString *)name{
    if (_name != name) {
        [ _name release];
        _name = [name retain];
    }
}

– (NSString *)name{
    return [[ _name retain] autorelease];
}



3,当把语义特性声明为copy时,setter和getter方法内部实现
– (void)setName:(NSString *)name{
    if (_name != name) {
       [ _name release];
        _name = [name copy];
    }
}

– (NSString *)name{
    return [[ _name retain] autorelease];
}


版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/115997.html原文链接:https://javaforall.net

赞 (0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • WPF 布局控件 之 WrapPanel[通俗易懂]

    WPF 布局控件 之 WrapPanel[通俗易懂]StatickPanel就是将子元素按照堆栈的形式一一排列,通过设置面板的Orientation属性设置了两种排列方式:横排(Horizontal默认的)和竖排(Vertical)。纵向的StatickPanel默认每个元素宽度与面板一样宽,反之横向亦然。如果包含的元素超过了面板空间,它只会截断多出的内容。元素的Margin属性用于使元素之间

    2022年7月23日
  • Java Volatile Keyword

    Java Volatile Keyword这几天学习Java内存模型,查看文章:JSR133(JavaMemoryModel)FAQ里面介绍了新的Java内存模型对volatile关键字的修订,因为只是一个FAQ,并没有很详细的解析volatile关键字的用法,找到一篇文章JavaVolatileKeyword详细的介绍了volatile适用的场景以及不适用的场景,翻译一下主要内容:…

    2022年7月18日
  • 安装Mendeley后Word中没有出现对应的Mendeley插件

    安装Mendeley后Word中没有出现对应的Mendeley插件Mendeley在Word工具栏中的位置新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML图表…

    2022年4月7日
  • Mac的shell命令大全

    Mac的shell命令大全最近实习发现自己linux命令掌握的很差,特此再整理一下自己所遇到的命令查看自己的maxOSX所用的是什么shellecho$SHELL查看所有支持的shellcat/etc/shells显示当前路径下所有的文件ls显示当前路径下的所有的文件,包括隐藏文件ls-a显示bin下的文件lsbin显示bin下包括隐藏文件在内的所有文件ls-abinls-l显示文件属性,包括大小,日期,符号连接,是否可读写及是否可执行ls-lh显示文件的

    2022年10月17日
  • SpringBoot自动装配原理「建议收藏」

    SpringBoot自动装配原理「建议收藏」SpringBoot项目无需各种配置文件,一个main方法,就能把项目启动起来。那么我们看看SpringBoot是如何进行自动配置和启动的。SpringBoot通过main方法启动SpringApplication类的静态方法run()来启动项目。根据注释的意思,run方法从一个使用了默认配置的指定资源启动一个SpringApplication并返回ApplicationContext对象,这个默认配置如何指定呢?这个默认配置来源于@SpringBootApplication注解,这个注解是个复

    2022年8月20日
  • java map转string_php转java还是转go

    java map转string_php转java还是转goprivateJSONObjecttoJsonObj(Map<String,Object>map,JSONObjectresultJson){Iteratorit=map.keySet().iterator();while(it.hasNext()){Stringkey=(String)it.next();…

    2022年10月5日

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号