我尝试在界面构建器
中更改自定义标签栏项目图像图像尺寸为54x58
应用程序编译并运行正常! 但是当我使用Xcode(CMD + I> Leaks)仪器对其进行分析时,它会显示以下内存泄漏,
// ... Leaked Object # Address Size Responsible Library Responsible Frame Malloc 48 Bytes 1 0xada86a0 48 Bytes CoreGraphics CGGlyphBitmapCreate Malloc 48 Bytes 1 0xe1905d0 48 Bytes CoreGraphics CGGlyphBitmapCreate Malloc 32 Bytes 1 0xad96170 32 Bytes CoreGraphics C // ....
堆栈跟踪没有显示我的任何代码泄漏, 只需在AppDelegate中为NavigationBar或TabBar设置自定义背景图像,即可触发此问题
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
// Override point for customization after application launch.
// Some Look and Feel
[[UITabBar appearance] setBackgroundImage:[UIImage imageNamed:@"nav_bg"]];
[[UINavigationBar appearance] setBackgroundImage:navbar_bkg_image
forBarMetrics:UIBarMetricsDefault];
// where navbar_bkg_image is UIImage
return YES;
}
有什么建议吗?
答案 0 :(得分:0)
在iOS 7.0中使用UIImageView
时,这是一个已知错误。所以问题可能不是标签栏或导航栏的结果,而是它们都使用的UIImageView
对象。如果在您注释掉这些行时报告的泄漏消失了,您可以安全地忽略泄漏(我们只能控制我们的操作,而不是iOS 7生成的泄漏)。
话虽如此,在iOS 7.0.3(Xcode版本5.0.1 5A2053)中重新测试它,看起来苹果可能已经解决了这个问题。
答案 1 :(得分:-1)
尝试使用@autoreleasepool
,它将解决您的问题。