永发信息网

ios开发之内存管理什么时候release

答案:2  悬赏:50  手机版
解决时间 2021-01-17 20:17
ios开发之内存管理什么时候release
最佳答案
使用self.的方法赋值的retaincount是对的。@property 关键字的作用是 给实例变量在.h文件里创建一个set/get函数的申明。等同于 你自己在.h文件里面给实例变量写set/get函数申明。@property (nonatomic,retain) UIView *view2;等于-(UIView*)getView2;-(void)setView2:(UIView*)view;在.m文件里的@synthesize关键字就是自动实现set/get函数。retain关键字的作用是,在实现set函数内部,retain当前变量,具体实现是这样:-(void)setView2:(UIView*)view{[_view2 release];_view2 = [view retain];}而self.view2 = tView;等于[self setView2:tview];也就是说,如果不用self.调用实例变量,retain关键字是不起作用的。self.view2 = tView; 之后 其实tView和view2都是同一个对象,只是这个赋值的发操作把tView的retaincount+1了而已。所以当 [tView release]之后,self.view2的retaincount-1。然后当再次给 self.view2赋值的时候,在set内部会再次release。这样是不会有内存泄露的。--------------------------------------------------------------------------------------------------------------在不使用self.的图片里,为什么在 [tView release]之后,retaincount还是1呢?这是因为 [tView release]之后, tView retaincount实际变成了0,然后tView 就被释放掉了。你后面调用tView.retainCount其实是没意义的,tView已经被释放了。所以你看到的1其实是,retainCount,retainCount2这2个变量前面被赋值的值。你如果改成赋值给一个新的变量,你就会发现是0了。而这个0其实是新的变量的初始化的值0,并不是tView.retainCount返回的0。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
你只负责好好做人,上天自有安排什么意思?
自己对某一个对联的理解150字
武术里怎么练底盘,我是个初学者!
哪里买宁美国度的电脑靠谱点?要售后好?实体
电脑屏幕突然一整屏的彩色斑点卡死了!
现在是不是越来越多的人活得越来越明白了
已知三角形的三边分别是3,8,x,若x的值为奇
西方哪位哲学家提出西方应学习中国的生而有为
清朝开始设置驻藏大臣的时间是A.1673年 B.
我校今年有500人毕业,去年毕业的人数比今年少
直抒胸臆的艺术效果是什么?
那里有黑枸杞
这是哪一种石头很重,对人有害吗
工龄29年零5个月,退休工资拿多少?
80国标罗汉扇子问价格
推荐资讯
三星a8000手机在哪看是几核
新三国在哪可以免费下载?
东风本田XRv后车门要多少钱
丽字组词语有哪些
萝卜丝炖虾是不是有毒
求教多币or双币信用卡申请问题
浙,JB35cm有什么搞笑的意思
春天遇到实电视剧林永建演的
2011年9月14日至16日,2011夏季达沃斯论坛暨
六一节给女朋友包红包,应该怎么备注呢,比如
The is month first january
如图表示某些物质间转化关系(部分反应条件省
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?