@property的内存管理

1.set方法内存管理相关的参数
* retain : release旧值,retain新值(适用于OC对象类型)
* assign : 直接赋值(默认,适用于非OC对象类型)
* copy : release旧值,copy新值


2.是否要生成set方法
* readwrite : 同时生成setter和getter的声明、实现(默认)
* readonly : 只会生成getter的声明、实现


3.多线程管理
* nonatomic : 性能高(一般就用这个)
* atomic : 性能低(默认)


4.setter和getter方法的名称
* setter : 决定了set方法的名称,一定要有个冒号 :
*getter : 决定了get方法的名称(一般用在BOOL类型)


@property Book  *book  // 这个语句是直接赋值的,不会有retain

@property (retain) Book  *book  // 生成的set语句会有retain的,相当于
- (void)setBook : (Book *)book
{

	if (_book = book)
	{
		[_book  release];
		_ book = [book  retain];
	}
}

// 当然,如果property中又retain ,则实现中需要实现dealloc语句
- (void)dealloc
{
	[_book release];
	[_name release];
	[super dealloc];
}

1.@class的作用:仅仅告诉编译器,某个名称是一个类
@class Person; // 仅仅告诉编译器,Person是一个类


2.开发中引用一个类的规范
1> 在.h文件中用@class来声明类
2> 在.m文件中用#import来包含类的所有东西


3.两端循环引用解决方案
1> 一端用retain
2> 一端用assign


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值