Xcode 4.4になり、コンパイラ君が自動で「@synthesize」を挿入してくれます。便利なんですが、何故か名称ダイレクトでプロパティへのアクセスが不可になりました? これがドット経由なら大丈夫なのです。例えばプロパティ名をmyArrayにすると…
self.myArray=[NSArray array]; // こちらはOK
myArray=[NSArray array]; // こちらはNG
自分で「@synthesize myArray;」と定義しておけば後者も問題ありません。もう少し調べてみると、名前の先頭にアンダーラインを付けると名称ダイレクトでもOKとなります。
_myArray=[NSArray array]; // こちらもOK
どうやら、コンパイル君は「@synthesize myArray=_myArray;」という処理を自動挿入しているようです。う?ん「@synthesize myArray;」だけで良いのに(涙)。
便利へと向かう道には多くの不便がころがっている!
それではと言う事で、名称を_myArrayにすると__myArrayにしないと怒られます(笑)。