私は経験豊富な iOS 開発者であり、AppKit の開発に挑戦することにしました。私がAPIに関して行っているいくつかの調整がありますが、それ以外は、OS X開発は「慣れ親しんだ」ものであることがわかっています。
私は Interface Builder で AppKit UI を構築してきましたが、WYSIWYG エディターを使用してコード ファイルにプロパティを作成すると、Apple が以下を作成していることに気付きました。
@property (assign) IBOutlet NSTableView *tableView;
iOS でのデフォルトの方法では、これを行うようになったので、これは非常に興味深いと思います。
@property (nonatomic, retain) IBOutlet NSTableView *tableView;
Mac での開発では、ビューがアンロードされる可能性があり、UI 要素への強力な参照が必要になる可能性があるモバイルで行うのと同じメモリ制約がないことを認識しています。
AppKit の場合、ビュー階層をいじって親ビューから削除しない限り、UI 要素は常にそこにあると想定できます。ダングリング ポインターに意図せずにアクセスすることを防ぐために、常に強力な参照を保持することは賢明に思えます。
Apple が強力な参照ではなく、ここで弱い参照を作成するのはなぜですか?
強い参照を使用することで、意図しない結果に備えていますか (ただし、適切にリリースされていますdealloc
)。ここに私が見逃しているパターンはありますか?