2012-04-12 12 views
3

コンパイラがどのようにプロパティのアクセサを自動生成するかのドキュメントがありますか?アクセサのプロパティの実装

カスタムアクセサを書き込むとき(合成されたアクセサをオーバーライドするとき)、元の実装を知っているといいでしょう。 特に、異なる(weak/strong/retain/copyなど)属性を持つプロパティのアクセサの実装の違いを確認する。

+1

[同じコードが宣言されたプロパティに対して合成されているか?](http://stackoverflow.com/questions/5350563/what-equivalent-code-is-synthesized-for-a-declared-property) –

答えて

3

コンパイラがどのようにプロパティのアクセサを自動生成するのかに関する文書はいくつかありますか?

コンパイラはC関数呼び出しを追加するだけです。 asmで聴く(例:_objc_getProperty_objc_setProperty

カスタムアクセサを書き込むとき(合成されたアクセサをオーバーライドする)、元の実装を知っているといいでしょう。特に、異なる(弱/強/保持/コピーなど)属性を持つプロパティのアクセサの実装の違いを確認する。

実装は、http://www.opensource.apple.com/source/objc4/でホストされているobjcランタイムの一部として公開されています。

+0

あなたは私に公共でそれを見つける場所を教えてくれるといいですか? – bijan

+0

これは現在のバージョンです。http://www.opensource.apple.com/source/objc4/objc4-493.11/runtime/Accessors.subproj/objc-accessors.m – justin

+0

は、ARCを使用する場合、依然として必要な保持/解放のものです? – bijan