【发布时间】:2011-05-04 22:48:26
【问题描述】:
我一直在尝试解决这个问题。基本上我使用方便的 RGB UIColor 函数返回一个 UIColor 来为我的 UINavigationBar、UIToolbar 和其他对象着色。但是由于某种原因,在 Instruments 中,每次加载 UIView 时都会出现内存泄漏。任何帮助,将不胜感激。为了清楚起见,我在这里简化了代码。这是我的函数(该函数具有 RGB 和 Alpha 作为变量),它位于全局单例类中:
- (UIColor *)returnSelectedColor{
return [UIColor colorWithRed:(100)/255.0 green:(100)/255.0 blue:(100)/255.0 alpha:(1.0)];
}
在我的 RootViewController 中,我在 ViewWillAppear 中进行了设置(有时色调会在两次调用之间发生变化,但我尝试了 ViewDidLoad 但问题仍然存在)。我尝试了两种不同的方法来解决这个问题,但仍然存在泄漏。
第一种方法是在视图如下所示时设置色调:
self.navigationController.navigationBar.tintColor=[[GlobalData sharedGlobalData] returnSelectedNavigationColor];
第二种方法是为视图创建一个 UIColor 属性,将其设置为所需的 UIColor,然后将导航栏色调设置为该属性,当视图关闭时我释放该属性。这种方法也会导致内存泄漏。代码如下:
if(self.navigationToolbarColor!=nil){
[self.navigationToolbarColor release];
}
self.navigationToolbarColor=[[[GlobalData sharedGlobalData] returnSelectedNavigationColor] retain];
self.navigationController.navigationBar.tintColor=self.navigationToolbarColor;
有人知道问题可能是什么吗?提前致谢。
【问题讨论】:
标签: objective-c memory-management memory-leaks