美文网首页
iOS关键字retain,assign,copy整理

iOS关键字retain,assign,copy整理

作者: 没打伞的鱼 | 来源:发表于2016-12-20 17:35 被阅读750次

从事iOS开发有些年头了发现有些基础的东西还是会因为时间久远而不记得一些细节,现在开始慢慢整理一些东西来帮助思考.

简单摘要

assign :简单赋值,不会更改索引计数
retain: 释放旧的对象,将旧对象的值赋予输入对象,再提高输入对象的索引计数为1
copy: 会建立一个索引计数为1的对象,然后释放旧对象

readonly:表示这个属性是只读的,就是只生成getter方法,不会生成setter方法
readwrite:属性为可读写
nonatomic:非原子性访问,不加同步

@synthesize、:编译器自动实现getter/setter方法
@dynamic:手动实现getter/setter方法
@property:

copy, retain, assign区别

retain:释放旧的对象,将旧对象的值赋予输入对象,再提高输入对象的索引计数为1
assign: 简单赋值,不更改索引计数(Reference Counting)
copy: 建立一个索引计数为1的对象,然后释放旧对象


* 使用assign: 对基础数据类型 (NSInteger)和C数据类型(int, float, double, char,等)
* 使用copy: 对NSString
* 使用retain: 对其他NSObject和其子类

copy的使用举例

@property(nonatomic,copy)NSString * str;

在setter方法中

- (void)setStr:(NSString *)str{ 
        if(_str != str){      //判断是否需要重新赋值
       [_str release];      //释放旧引用,计数器-1
       _str = [str copy];   //重新赋值,使用copy }
}

- (void)test{
    NSMutableSting *s = [[NSMutableSting alloc] setString:@"hello"];  
     p.str = s; //此时,str的值为@"hello" 
   [s appendString:@"world"]; //此时,s的值为"hello world",但是str的值依然为"hello". 
}

@dynamic @synthesize 区别

@synthesize 如果没有手动实现setter方法和getter方法,那么编译器会自动加上这两个方法
@dynamic 告诉编译器属性的setter与getter方法由用户自己实现,不自动生成。(对于readonly的属性只需提供 getter方法即可)

相关文章

  • ----

    第一部分 iOS基础 1、 常用关键字,retain,copy,mutablecopy,weak,assign,...

  • OC常见关键字

    转载自:iOS开发——OC篇&常用关键字的使用与区别 copy,assign,strong,retain,weak...

  • iOS属性的关键字

    常用属性关键字:natomic、nonatomic、assign、weak、strong、retain、copy、...

  • iOS关键字retain,assign,copy整理

    从事iOS开发有些年头了发现有些基础的东西还是会因为时间久远而不记得一些细节,现在开始慢慢整理一些东西来帮助思考....

  • iOS【copy,strong,retain,weak和assi

    摘录:iOS中copy,strong,retain,weak和assign的区别 copy,strong,weak...

  • i面试题及答案(基础)

    @property中有哪些属性关键字? 答:strong weak retain assign copy unsa...

  • iOS面试资料

    1. strong、retain、copy、assign、weak、_Unsafe_Unratain 关键字的理解...

  • ios属性关键字

    属性关键字:ARC strong weak MRC retain 不分环境 copy assign nonatom...

  • 相关的知识点

    相关知识点: 1,Retain,copy assign 三个关键字的区别 Retain 用于修饰oc 对象 类型 ...

  • 修饰词用法

    ARC:assign、weak、strong、copy MRC:assign、retain、copy、nonato...

网友评论

      本文标题:iOS关键字retain,assign,copy整理

      本文链接:https://www.haomeiwen.com/subject/xtkfvttx.html