Objective-C内存管理(四)@property相关参数详解

本文详细介绍Xcode4.5及以上版本中@property的使用方法,包括内存管理、多线程管理及方法命名等内容,并通过Person类实例展示不同参数的作用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在Xcode4.5以及以后的版本,通过@property就可以声明一个类的成员属性,还可以设置成员属性的其他属性,下面对@property的用法及其参数设置进行详细讲解

创建Person类

Person.h文件

@interface Person : NSObject

// 返回BOOL类型的方法名一般以is开头
@property (nonatomic, getter = isRich) BOOL rich;

// 生成get、set方法
@property (nonatomic, assign, readwrite) int weight;


// 只生成get方法
@property (nonatomic, assign, readonly) int height;

// 什么参数都不设置,都是默认的,与下面是等价的
@property int age;
//@property (atomic, assign, readwrite) int age;

@property (nonatomic, copy) NSString *name;

@end

Person.m文件

#import "Person.h"

@implementation Person

@end


对@property括号内的参数作用进行总结

 1.set方法内存管理相关的参数

 * retain : release旧值,retain新值(适用于OC对象类型)

 * assign : 直接赋值(默认,适用于非OC对象类型,进本属性类型)

 * copy   : release旧值,copy新值(NSString、block数据类型)

 

 2.是否要生成set方法

 * readwrite : 同时生成settergetter的声明、实现(默认)

 * readonly  : 只会生成getter的声明、实现

 

 3.多线程管理

 * nonatomic : 性能高 (一般就用这个)

 * atomic    : 性能低(默认)

 

 4.settergetter方法的名称(指定setter、getter方法的名称)

 * setter : 决定了set方法的名称,一定要有个冒号 :

 * getter : 决定了get方法的名称(一般用在BOOL类型)

 




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值