プロパティのnonatomicとretain

プロパティの宣言時によく使うnonatomicとretainについて。

@property (nonatimic, retain)  UITextField *nameField;

retainをつけていると@synthesizeしたときに「新しい値へのretain」と「古い値へのrelease」を行うコードが生成される。ということはsynthesizeしない時はretainの必要はないんだろうな。

retainやreleasen必要のない非オブジェクト型に対してはretainの代わりにassignを指定する。

atomicやnonatomicはJavaのsynchronizeみたいなものなのかな。なのでnonatomicではsynchronizeされないと。