【问题标题】:memory leak in pushViewControllerpushViewController 中的内存泄漏
【发布时间】:2011-06-29 10:22:01
【问题描述】:

我是内存管理的新手,我搜索过类似的主题,但没有找到导致内存泄漏的简单示例。我正在使用 Instruments 测试我的应用程序,它说我在 pushViewController 中有 144 字节的内存泄漏。

rootViewController:

- (IBAction)optionsAction
{
    optionsViewController *ovc = [[optionsViewController alloc] init];
    // MEMORY LEAK 100.0%
    [self.navigationController pushViewController:ovc animated:YES]; 
    [ovc release];
} 

optionsViewController.h

@interface optionsViewController : UIViewController <ADBannerViewDelegate> {
    UISlider *volumeSlider;
    UISwitch *soundSwitch;
    SystemSoundID SSID;
}
@property (nonatomic, retain) IBOutlet UISwitch *soundSwitch;
@property (nonatomic, retain) IBOutlet UISlider *volumeSlider;
@property (assign) SystemSoundID SSID;

@end

optionsViewController.m

- (void)dealloc
{
    [volumeSlider release];
    [soundSwitch release];
    AudioServicesDisposeSystemSoundID(self.SSID);
    [super dealloc];
}

您知道这次泄漏的原因是什么吗?你能说我应该在哪里搜索问题,rootViewController还是optionsViewController?

【问题讨论】:

  • 检查initoptionsViewController控制器的功能。
  • 初始化是默认的:- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil { self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil]; if (self) { // 自定义初始化 } return self; }

标签: iphone uiviewcontroller memory-leaks


【解决方案1】:

我认为AppSoundEngine 可以简化您的生活:) 它是系统声音的objective-c 包装器,易于使用。您可以将声音播放能力处理到专门的班级。你的视图控制器压力会更小:)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-02-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-07-06
    • 1970-01-01
    • 2015-12-01
    相关资源
    最近更新 更多