首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >navigationBar tintColor内存泄漏

navigationBar tintColor内存泄漏
EN

Stack Overflow用户
提问于 2011-08-17 14:56:14
回答 1查看 342关注 0票数 0

我将在viewWillAppear中更改navigationBar tintColor:self.navigationController.navigationBar.tintColor = tintColor;

在viewWillDisappear中:NSLog(@"before retain count:%d", [tintColor retainCount]); self.navigationController.navigationBar.tintColor = nil; NSLog(@"after retain count:%d", [tintColor retainCount]);

tintColor = [[UIColor colorWithRed:23.0/255.0 green:169.0/255.0 blue:226.0/255.0 alpha:1.0] retain];

为什么nslog“保留计数前”和“保留计数后”相等?

EN

回答 1

Stack Overflow用户

发布于 2011-08-17 15:08:39

这可能是一种过度留存。

将tintColor分配给UINavigationBar对象的tintColor属性。这将调用tintColor属性的UINavigationBar的设置器,该设置器将向要设置的给定tintColor发送保留消息。

我解释最后一行代码

代码语言:javascript
复制
tintColor = [[UIColor colorWithRed:23.0/255.0 green:169.0/255.0 blue:226.0/255.0 alpha:1.0] retain];

作为创建自定义tintColor的位置。最后一项保留是问题所在。你可以这样做,但你必须在之后的某个地方释放它,才能让引用计数的内存清理工作。

查看Apple UINavigationBar Class Reference中的属性声明的类引用。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7088960

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档