假设将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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • android 安装p12证书,怎么使用P12证书的Android「建议收藏」

    android 安装p12证书,怎么使用P12证书的Android「建议收藏」当点击Wi-FiSettings,Advanced界面的“安装证书”;或者在Settings的Security界面下的CredentialStorage界面点击“安装证书”。com.android.certinstaller包中的CertInstallerMain类会收到Settings发送的Credentials.INSTALL_AS_USER_ACTIONintent。然后,CertIn…

    2022年6月15日
    28
  • ScheduledExecutorService 使用

    ScheduledExecutorService 使用ScheduledExecutorService,我平时没有用过,他的最大优点除了线程池的特性以外,可以实现循环或延迟任务。ScheduledExecutorService,是基于线程池设计的定时任务类,每个调度任务都会分配到线程池中的一个线程去执行,也就是说,任务是并发执行,互不影响。需要注意,只有当调度任务来的时候,ScheduledExecutorService才会真正启动一个线程,其余时间ScheduledExecutorService都是出于轮询任务的状态。先来个简单的延迟任务调…

    2022年6月2日
    37
  • waypoint_使用jQuery Waypoint创建粘性导航标题

    waypoint_使用jQuery Waypoint创建粘性导航标题在本教程中,我们将创建一个导航栏,当您向下滚动时,它会陪伴您-我们还将在混合中添加一两个two头以对其进行修饰。介绍克里斯·科耶尔(ChrisCoyier)在讨论:before和:after伪元素的优点时说:“每个人都喜欢丝带。”我已经看到这些程式化的三角形边缘的丝带在整个互联网上突然冒出(一个著名的例子是Facebook的IntroducingTimeline页面),尽管它…

    2025年8月24日
    5
  • 企业使用it人力外包可以解决哪些问题

    企业使用it人力外包可以解决哪些问题随着大数据、云计算等互联网技术的应用和普及,很多传统企业为了提升竞争力都在加紧进行数字化转型,而数字化转型离不开各类it人才。很多企业都会通过和it人力外包公司合作来大量引进it人才。那么企业和it人力外包公司合作可以解决哪些问题呢?一、使用it人力外包可以节省成本通常很多企业可能一年开发不了几次软件,如果自己建立一个应用程序软件开发部门,将花费很多费用。使用it人力外包,让it人员进行现场开发,工作完成并且项目结束后可以离开。it人力外包公司承担这些it外包人员招聘成本,员工试用风险,某些员工

    2022年5月15日
    44
  • aardio界面库_aardio有什么用

    aardio界面库_aardio有什么用之前想写一个图形界面化工具,了解了MFC、Qt,最后选了PyQt4,毕竟自己对python比较了解一些。后来同事推荐了一个aardio工具,发现确实很简便,不用什么乱七八糟的配置,安装包只有5.5M,安装编译,使用也简单。但也有不好的地方,因为使用比较少,所以有很多问题没法找到答案,这也是新语言的一种必然的过程。Anyway,膜拜一下大神。aardio官方社区:http://bbs.aardio….

    2025年6月11日
    2
  • centos7 安装nginx 完整步骤「建议收藏」

    centos7 安装nginx 完整步骤「建议收藏」1.安装gccgcc是用来编译下载下来的nginx源码 yuminstallgcc-c++2、安装pcre和pcre-devel  PCRE(PerlCompatibleRegularExpressions)是一个Perl库,包括perl兼容的正则表达式库。nginx的http模块使用pcre来解析正则表达式,pcre-devel是使用pcre开…

    2022年4月29日
    94

发表回复

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

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