retain 和 assign 的区别使用

来源:互联网 发布:绥化学院教务管理网络 编辑:程序博客网 时间:2024/05/16 17:42

MRC 下,会出现循环 retain 的问题,这种情况下,一次 release 并不能完成释放,如下:

#import <Foundation/Foundation.h>@class Person;@interface Car : NSObject@property (nonatomic , retain ) Person * ownerPerson;@end
#import <Foundation/Foundation.h>@class Car;@interface Person : NSObject@property (nonatomic , retain ) Car * ownerCar;@end
- (void)viewDidLoad {    [super viewDidLoad];    Car * mCar = [[Car alloc] init];    Person * mPerson = [[Person alloc] init];    mCar.ownerPerson = mPerson;    mPerson.ownerCar = mCar;    [mCar release];    [mPerson release];    NSLog(@"mCar %ld",[mCar retainCount]);    NSLog(@"mPerson %ld",[mPerson retainCount]);    [mCar release];    [mPerson release];}

打印结果如下:

2017-11-19 16:18:46.997212+0800 test[4158:362888] mCar 12017-11-19 16:18:46.997400+0800 test[4158:362888] mPerson 12017-11-19 16:18:46.997501+0800 test[4158:362888] Car dealloc2017-11-19 16:18:46.997579+0800 test[4158:362888] Person dealloc

因为循环引用的问题,需要再次进行 release,但是这样的处理又不科学,这里解决的时候,可以将 reatin 换为 assign 进行修饰.因为 assign 不会使得引用计数 +1

原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 尝到了母爱的滋味400 让儿子尝试了一次中文字 我尝到了母爱的滋味40 我尝到了母爱的滋味400小说下载 好胀胀死妈了乖乖儿子中文字 我尝到了母爱的滋味300 儿子别射J去妈会怀孕视频中文 全屏儿子射J去妈怀孕了漫画 全屏无遮单身妈和儿 四川真实亲妈视频y 全屏无遮单身妈和儿子漫画 全屏无遮单身妈和儿子线播放 青岛重庆真实儿子亲妈 全屏无遮单身在线播放 四川真实亲妈视频链接 全屏无遮单身妈和儿子在线播放中文字 白边液越用白边越大 四川亲妈真实视频 普通话对白边电话边看边干 浙江边干边对白边对白边对白 离婚后一直跟儿子做 边骂脏话对白 离婚多年生理需求和儿子 儿子很帅没忍住和他 离婚后跟儿子做 和儿子一起旅游没忍住 离婚很多年和儿子一起 怀孕了、是儿子的 子母相伦动漫视频 离婚多年和儿子一起打工住一起没忍住 双子母视频 视频播放 与岳 母坐摩托车txt小说 我的丝母韵母txt 经典家庭伦txt丝母韵欲下载 经典家庭伦txt丝母韵欲阅读 经典家庭伦txt丝母韵欲全文阅读 笔趣阁丝母欲韵1-5 我的丝母韵欲txt下载 丝母欲韵1-5阅读 水利局的妈赵丽颖我的丝母欲韵 我的丝母欲韵4-9