、私は次のことを見てきました:IBOutlet Workのreadonlyプロパティはありますか?それは好ましいでしょうか?私は継承してるコードで
@property (readonly) IBOutlet UIImageView * bgImage;
私は次のように保持メモリモデルを期待する:
@property (readonly, retain) IBOutlet UIImageView * bgImage;
私がなぜ最初のプロパティの定義混乱しています問題を起こさずに動作します。誰もがこのための説明を考え出すことができる場合、私は感謝し
-(void)dealloc
{
[_bgImage release];
[super dealloc];
}
:
はまた、release
はあなたのように期待するかもしれないようにdeallocでもあります。私は元の開発者と話し、彼はメモリモデルの中でretain
を省略した理由(より不必要であると思われる)より簡潔なコードを書くことを試みていました。
それは(何のセッターは使用しないために、このようにデフォルトの割り当てメモリモデルには違いはありません)読み取り専用であるため、IBOutletは、基本的にはIVAR IBOutlet文のように扱われるのだろうか。
IBOutletが変化することが予想されることはありません場合は、なしメモリモデルでReadOnlyプロパティを使用してしまうと、実際にプロパティを定義するための望ましい方法は?
'コンセントがretainまたはassignとして宣言されているかどうか、反対側のオブジェクトはコンセントでオブジェクトに所有されています(これはあまり明確ではありません)。これは' readonly'に設定されている場合のみですか? '(assign、readwrite)'だった場合は、保持していないセッターが使用され、 'retain'は使われませんでしたか? - 私はそれがちょっとあいまいなあなたの答えの唯一の部分だと言います。 –
私はそう思っています...それは確かに言うようです。 –
@ Paul.s:私の更新を見てください - 参考活動を手作業で数えることにしました。その結果は有益だと思います。 –