iOS 基础之—— Properties

一篇关于iOS 编程中 @property 方法中属性的介绍,写的十分简洁明了,原文链接请戳。 

 

===读后分割线====

在iOS 5之后,有了ARC 的出现,不需要手动进行内存管理,@property 中的属性也有了一些变化。

现在常使用的如下:

属性功能介绍
getter=给getter方法一个自定义名称
setter=给setter方法一个自定义名称
readonly不生成setter方法
nonatomic禁止多线程,相较默认的线程保护(atomic)可提高性能
内存管理属性 
weak弱引用,所声明的变量没有对象的所有权,可防止retain cycle
strong强引用,所声明的变量持有对象的所有权
copy创建并引用赋值对象的副本

 

copy 属性:

可用来替代 strong 属性。最好是用来声明变量(values),而不是connections or relationships。

在Car.h 中:

@property (nonatomic, copy) NSString *model;

 

Car *honda = [[Car alloc] init];
    NSMutableString *tmp = [NSMutableString stringWithString:@"Honda"];
    honda.model = tmp;
    NSLog(@"%@", honda.model); // Honda
    
    [tmp setString:@"Nissa"];
    NSLog(@"%@", honda.model); // Honda

当变量属性为copy时,tmp 值的改变不会改变honda.model 的值,而strong\weak 属性下honda.model值会改变。

 

weak 属性:

delegate 和outlet 应用weak 属性来声明。

 

其他属性(在iOS 5之后的开发中不推荐使用):

retain

unsafe_unretained

assign 该属性不代表任何内存管理属性,是原始数据类型(primitive data types)的默认行为,也被用来实现弱引用

 

转载于:https://www.cnblogs.com/stonewong/p/3735581.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值