奇妙な問題に直面しています。現在のビューにUIViewcontroller(iViewと呼ばれます)を追加したいと思います。私は電話でそれをします
iView = [[KFKaraokeInfosView alloc] initWithKaraoke:karaoke NibName:@"InfosView" commingFromPlayer:NO];
iView.songTitle.text = karaoke.title;
[self.view addSubview:iView.view];
iViewのviewDidLoadで、このように特定の通知の通知センターにオブザーバーとして追加します
- (void)viewDidLoad
{
[super viewDidLoad];
self.title = @"About";
if ([karaoke.styles count] == 0)
{
[[NSNotificationCenter defaultCenter] postNotificationName:@"GetInfosOfSong" object:self.karaoke];
}
else
{
shouldSetup = YES;
}
[self.navigationController setNavigationBarHidden:NO animated:YES];
[self.navigationController.navigationBar setBarStyle:UIBarStyleBlack];
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(setup) name:GetSongInfos object:nil];
[optionsTableView setBackgroundView:nil];
}
問題は、初期化時にiViewでautoreleaseメソッドを呼び出すと、通知がキャッチされない(つまり、setupメソッドが呼び出されることはない)が、iViewのautoreleaseを呼び出さない場合は機能することです。
この状況でのメモリ管理がわかりません。誰かが私を理解するのを手伝ってくれますか?