A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© Moebius 中级黑马   /  2014-7-20 11:37  /  1400 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

如果可以声明怎么声明?@property 后面的应该怎么写?

3 个回复

倒序浏览
你的意思是不是让一个类拥有NSMutableArray的一个属性?
@property (nonatomic, retain) NSMutableArray  *array;
回复 使用道具 举报
为梦想挺身而出 发表于 2014-7-20 12:01
你的意思是不是让一个类拥有NSMutableArray的一个属性?
@property (nonatomic, retain) NSMutableArray  * ...

意思就是声明一个 可以放对象的集合,要是有ARC的情况下,是不是把retain换成strong?
回复 使用道具 举报
1、ARC判断准则:只要没有强指针指向对象,就会释放对象
2、ARC特点:
1> 不允许调用release、retain。retainCount
2> 允许重写dealloc,但是不允许调用[super dealloc]
3、@property的参数
1> strong :成员变量是强指针(适用于OC对象类型)
2> weak  :成员变量是弱指针(适用于OC对象类型)
3> assign:适用于非OC对象类型
4> 以前的retain改为用strong
4、指针分两种
1> 强指针:默认情况下,所有的指针都是强指针__strong
2> 弱指针:__weak 弱指针是不决定对象被释放的,如果弱指针指向的对象没有强指针指向的话就自动清空弱指针
         没有意义的写法,一创建就被销毁了
    __weak Person *per = [[Person alloc] init];
5、当两端循环引用的时候,解决方案
1> ARC
一端用strong,一端用weak            
2> 非ARC
一端用retain,一端用assign
6、某个.m文件不要ARC: -fno-objc-arc
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马