navBar发生内存泄漏 [英] memory leak with navBar

查看:64
本文介绍了navBar发生内存泄漏的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

能帮我解决内存泄漏吗?

Can you help me please to fix the memory leak ?

#import <Foundation/Foundation.h>


@interface NavBar : NSObject 
{
    NSString* nav;
}

@property (nonatomic, retain) NSString* nav;

+ (NavBar *) sharedInstance;

@end


#import "NavBar.h"


@implementation NavBar

@synthesize nav;

-(void)dealloc
{
    [nav release];
}

+(NavBar *)sharedInstance 
{
    static NavBar *myInstance = nil;
    if (nil == myInstance) {
        myInstance  = [[[self class] alloc] init];
    }
    return myInstance;
}

@end

我在这里有泄漏:

- (void) viewWillAppear:(BOOL)animated 
{
    [NavBar sharedInstance].nav = @"navBar.png";
    self.navigationController.navigationBar.barStyle = UIBarStyleDefault;

    self.navigationController.navigationBar.tintColor = [UIColor clearColor];
    self.navigationController.navigationBar.barStyle = UIBarStyleDefault;
    self.navigationController.navigationBar.tintColor = [UIColor colorWithRed:19/255.0 green:140/255.0 blue:130/255.0 alpha:1.0];

    [super viewWillAppear:animated];
}

在我的应用程序的委托中:

in the delegate of my app:

@interface UINavigationBar (CustomBackground)
- (void)drawRectCustomBackground:(CGRect)rect;
@end


@implementation UINavigationBar (CustomBackground)

- (void)drawRectCustomBackground:(CGRect)rect 
{

    if (self.barStyle == UIBarStyleDefault)
    {

            UIImage *image = [UIImage imageNamed:[NavBarStyles sharedInstance].navStyle];
            [image drawInRect:CGRectMake(0, 0, self.frame.size.width, self.frame.size.height)];
            return;
    }

    [self drawRectCustomBackground:rect];
}

推荐答案

有时,您需要致电

 [[NavBar sharedInstance] release];

或等价物.可能正好在您退出之前.

or an equivalent. Probably right before you exit.

这篇关于navBar发生内存泄漏的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆