私はiPhone SDK 3.0を使用していますが、これは物事がどのように動作するかについての一般的な誤解であると思います&メモリ管理。ポインタメモリ管理の誤解/ objective-c
私は離れて上記のビューコントローラから切り替えると、すべてが正常に動作するスイッチバックしようとしたとき、私はこの
@implementation MyViewController
- (void)viewWillAppear:(BOOL)animated {
NSArray *items = [NSArray arrayWithOjbects:self.searchButton, self.trashCan, nil];
[self.bottomBar setItems:items animated:YES];
}
// other stuff...
@end
ようviewWillAppearメソッドをオーバーライドしてきました。
しかし、私はと考えてのNSArrayへの参照がbottomBarによって保持されるため、元のポインタを "items"に "解放"しています。 これを行うと(以下のコードを参照)、UIViewControllerから切り離すと、メモリ管理エラー( - [CFArray count]:メッセージが割り当て解除されたインスタンス0xd5f530に送信されます)が表示されます。
- (void)viewWillAppear:(BOOL)animated {
NSArray *items = [NSArray arrayWithOjbects:self.searchButton, self.trashCan, nil];
[self.bottomBar setItems:items animated:YES];
[items release];
}
は、私はこのケースでないリリース項目に必要ですか?または私は何か間違っているのですか? 明らかに、経験的な証拠は、私が "アイテム"をリリースすべきではないことを示していますが、なぜこれが当てはまるのかはわかりません。
情報/ "ポインタ"ありがとう!
ありがとうございます!リンクに感謝します。 – user141146