假设将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];

}

假设将synthesize省略,语义特性声明为assign retain copy时,自己实现setter和getter方法的更多相关文章

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

    如果将synthesize省略,并且我们自己实现setter和getter方法时,系统就不会生成对应的setter和getter方法,还有实例变量 1,当把语义特性声明为assign时,setter和 ...

  2. 假设synthesize省略,语义属性声明assign retain copy时间,为了实现自己的setter和getter方法

    假设synthesize省略,而且我们自己实现setter和getter方法时,系统就不会生成相应的setter和getter方法,还有实例变量 1,当把语义特性声明为assign时,setter和g ...

  3. Objective-c的@property(atomic,nonatomic,readonly,readwrite,assign,retain,copy,getter,setter) 属性特性

    assign:指定setter方法用简单的赋值,这是默认操作.你可以对标量类型(如int)使用这个属性.你可以想象一个float,它不是一个对象,所以它不能retain.copy. retain:指定 ...

  4. iOS知识基础篇--@property,@synthesize, nonatomic,atomic,strong,weak,copy,assign,retain详解

    一.@property 这个关键词的唯一作用就是声明getter.setter方法接口. 二.@synthesize 实现setter.getter方法,找不到实例变量则主动创建一个. 三.nonat ...

  5. Entity Framework 第三篇 实体特性声明

    Entity Framework中对实体的特性声明有着严格的要求 1.实体必须要有主键特性,但是如果实体没有主键特性那怎么办? public int ExecuteSqlCommand(string ...

  6. ios特性访问器方法(setter和getter)

    Employee.h @interface Employee:NSObject { int _employeeNumber; NSString *_name; Employee*_supervisit ...

  7. oc26--Property,省略setget的声明

    // // Person.h #import <Foundation/Foundation.h> @interface Person : NSObject { int _age; } /* ...

  8. 再谈 retain,copy,mutableCopy(官方SDK,声明NSString都用copy非retain)

    之前一直以为retain就是简单的计数器+1,copy就是重新开辟内存复制对象: 其实不是这样,原来之前的自己独自徘徊于糊涂之中. (官方SDK,对NSString属性的定义都是用copy,而不是re ...

  9. iOS: 属性声明strong和retain竟然不一样

    今天和同事在处理一处用strong声明的Block属性引发的问题时偶然发现的.在诸多教程中都会讲到:声明属性时用strong或者retain效果是一样的(貌似更多开发者更倾向于用strong).不过在 ...

随机推荐

  1. Android学习笔记27:网格视图GridView的使用

    网格视图GridView的排列方式与矩阵类似,当屏幕上有很多元素(文字.图片或其他元素)需要按矩阵格式进行显示时,就可以使用GridView控件来实现. 本文将以一个具体的实例来说明如何使用GridV ...

  2. docker exec 运行命令

    docker:/root/sbin# docker exec -it 17aaf60ee3a1 /sbin/ifconfig -a eth1 Link encap:Ethernet HWaddr 22 ...

  3. Mysql 语句汇总(性能篇)

    查询mysql 哪些表正在被锁状态: show open TABLES where In_use > 0; show open table from XXX(数据库名);//查看数据库哪些表正在 ...

  4. C++_const

    //const在C不可以初始化数组 //const在C++可以用来初始化数组 #include <iostream> using namespace std; void main() { ...

  5. Android开发实例之闹钟提醒

    本实例通过TimePickerDialog时间选择对话框让用户设置闹钟.并通过AlarmManager全局定时器在指定的时间启动闹钟Activity . 程序执行效果图: 实例代码: package ...

  6. 【Deep Learning】genCNN: A Convolutional Architecture for Word Sequence Prediction

    作者:Mingxuan Wang.李航,刘群 单位:华为.中科院 时间:2015 发表于:acl 2015 文章下载:http://pan.baidu.com/s/1bnBBVuJ 主要内容: 用de ...

  7. 精简JRE的思路初探

    引言: JRE是Java程序赖以执行的基础环境,眼下JRE已经很的庞大;即使为了执行一个简单的Hello World的程序.可能依旧须要依赖整个JRE,将近百兆大小的依赖性. 能否够对特定Java程序 ...

  8. ADO.NET FOR MySQL帮助类

    using System; using System.Collections; using System.Collections.Specialized; using System.Data; usi ...

  9. isEmpty()

    String a = new String(); 此时a是分配了内存空间,但值为空,是绝对的空,是一种有值(值存在为空而已) String b = ""; 此时b是分配了内存空间, ...

  10. oracle sql developer 使用技巧

    1.配置自动提示快捷键: 选中completion insight 然后选中新建快捷方式,然后按alt+/,再选中分配即可: