アナライザのリークが発生していますが、これは他の場所で問題なく使用しています。私はallocを使用していることを知っているので、解放する必要がありますが、私はdeallocでこれをやっています。Obj-C、行に割り当てられたオブジェクトの潜在的なリーク、UIBarButtonItem alloc
私は間違っていますか?
ヘッダファイル:
@interface myViewController : UIViewController <UITableViewDataSource,
UITableViewDelegate> {
UIBarButtonItem *addButton;
}
@property (nonatomic, retain) UIBarButtonItem *addButton;
主なファイルは:あなたがセッターを使用していない
@synthesize addButton;
- (void)viewDidLoad {
NSMutableArray* buttons = [[NSMutableArray alloc] initWithCapacity:3];
addButton = [[UIBarButtonItem alloc]
initWithBarButtonSystemItem:UIBarButtonSystemItemAdd
target:self action:@selector(btnNavAddPressed:)];
addButton.style = UIBarButtonItemStyleBordered;
[buttons addObject:addButton];
[tools setItems:buttons animated:NO];
[buttons release];
self.navigationItem.rightBarButtonItem = [[UIBarButtonItem alloc]
initWithCustomView:tools];
addButton.enabled = FALSE;
- (void)dealloc {
[addButton release];
これらのタイプの問題は、iOS開発者にとって最も一般的なハードルの1つです。あなたが経験を積むにつれて、より自然になりやすくなります。 xcode 4.2を使用している場合は、ARC(Automatic Reference Counting)のドキュメントを読んでプロジェクトをそのプロジェクトに移行することをお勧めします。 WRTのメモリ管理のルールは変更されませんが、コンパイラがほぼすべての作業を行うことができます。 – XJones