2017-01-18 7 views
0

私は.Mプロパティが合成されずに機能するのはなぜですか?

に続いての.h

@property (nonatomic) NSString *yourMom; 

でNOのsynthesizeを持っていません! viewdidloadの直接アクセス:

_yourMom = @"Sally"; 

これは合成せずに動作します。どうして?

+3

'_yourMom'は自動的にコンパイラによって合成されますが、あなたはそれをカスタム化することができます。 – Tj3n

+0

Ah。自動合成されます。おかげで嬉しいですTj3n – GeneCode

+5

[Objective-cではどのような条件で@synthesizeが自動実行されますか?](http://stackoverflow.com/questions/9368676/under-what-c​​onditions-is-synthesize-automatic-in- objective-c) – NobodyNada

答えて

2
Objective-C @propertiesは、明示的に実装されていない場合、デフォルトで合成されます。

特に指定しない限り、合成インスタンス変数はプロパティと同じ名前ですが、接頭辞はアンダースコアです。たとえば、firstNameというプロパティの場合、合成されたインスタンス変数は_firstNameと呼ばれます。

アップルのdocumentをお読みください。それはあなたが必要とする包括的な情報を持っています。

+0

このリンクは質問に答えるかもしれませんが、答えの本質的な部分をここに含めて参考にしてください。リンクされたページが変更された場合、リンクのみの回答は無効になります。 - [レビューの投稿](レビュー/低品質の投稿/ 14919331) –

+0

@JanChrbolkaあなたのお薦めいただきありがとうございます。私はちょうど私の答えを編集しています:) –

+0

@martinlee質問のこの種の答えを別々に答えを更新しないでください。 –

関連する問題