私はこれを読んでいます:もし私がこのようなものを持っているなら:
@property (nonatomic, assign) UIView *anView;
そうすれば、メモリ管理について気にする必要はありません。-deallocメソッドで[anViewrelease]を実行する必要はありません。
なんで?
「assign」はコンパイラに「ねえ、このプロパティは誰もが割り当てたものを保持しません」と伝えるだけです。そして、あなたはするかもしれません
@synchronize anView;
コンパイラは魔法のようにゲッターとセッターを作成します。セッターは次のようになります。
- (UIView*) anView {
return anView;
}
セッターは次のようになります。
- (void) setAnView:(UIView*)newAnView {
anView = newAnView;
}
正しい/間違っていますか?それが正しければ、セッターはnewAnView変数の所有権を主張しません。これは、「保持」プロパティではないためです。それを受け取り、インスタンス変数に割り当てます。したがって、所有権ポリシーを検討する場合、-deallocでanViewインスタンス変数を解放する必要はありません。オブジェクトはそれを所有していません。それは正しいですか?