ユニバーサルアプリの定型コードを読んでいたところ、次のことがわかりました。
- (void)dealloc
{
...
[_navigationController release];
...
}
そしてさらに:
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
...
self.navigationController = [[[UINavigationController alloc] initWithRootViewController:masterViewController] autorelease];
...
}
アンダースコアのすべてを理解しているのかどうかはわかりませんが、ivarに直接アクセスするのではなく、プロパティを介してアクセスするのを防ぐためだと思います(なぜですか?わかりません...しかし、これが何であるかを受け入れますそのため)。
しかし、私が得られないのは、self.navigationController
dの場合、最後にリリースされたautorelease
ときに確かにこれが問題を引き起こすということですか?_navigationController
さらに紛らわしいのは、 forにretain
ビットがないという事実です。@property
navigationController
私が知る限り_navigationController
、プロパティを介してアクセスされるのnavigationController
はautorelease
dであり、直接アクセスされて、deallocでリリースされます(すでに自動リリースされている可能性がありますか?)。
笑、誰かがここで何が起こっているのか説明できるといいのですが!ボイラープレートコードはおそらく間違っていないはずです!
ありがとうございました。