0

setterメソッドとgetterメソッドのretain、assign、copyのコードを見たいのですが、誰かが便利なスタックオーバーフローの投稿やその他のチュートリアルリンクを教えてくれませんか。よろしくお願いしますSaadAhmad

4

2 に答える 2

1

通常、インスタンス変数の所有権を主張する必要があります。Objective-Cのメモリ管理ルールを参照してください。保持プロパティを使用すると、プロパティセッターは新しい値の所有権を主張し、古い値の所有権を放棄します。割り当てプロパティを使用すると、周囲のコードがこれを実行する必要があります。これは、責任と関心の分離の点で同じように混乱します。割り当てプロパティを使用する理由は、値を保持できない場合(BOOLやNSRectなどの非オブジェクトタイプなど)、または保持すると望ましくない副作用が発生する場合です。

ちなみに、NSStringの場合、正しい種類のプロパティは通常コピーです。そうすれば、誰かがNSMutableString(有効です—これは一種のNSStringです)を渡しても、あなたの下から変更することはできません。

これらのリンクを通り抜けてください。これらのリンクであなたがよりよく理解することを願っています-

Objective-C 101(保持と割り当て)NSString

NSStringプロパティ:コピーまたは保持しますか?

https://developer.apple.com/library/mac/#documentation/Cocoa/Conceptual/MemoryMgmt/Articles/MemoryMgmt.html

于 2012-10-01T09:00:29.893 に答える
1

このガイドでは、原則を非常によく説明しています。私も何度か参考にさせていただきました。

http://blog.ablepear.com/2010/04/objective-c-tuesdays-instance-variables_20.html

于 2012-10-01T09:02:52.600 に答える