Не полный noob. Я новичок в программировании iOS и Ojbective-C. В основном я использую C (DSP, Microcontrollers), Delphi XE2/Pascal, Visual Basic и Java (настольные и Android-приложения).
В основном я узнал Cocoa с книгой "Начало разработки iOS 5" от Apress.
Недавно я просмотрел видеоролики WWDC 2012 и просмотрел некоторые из своих примеров кода, и я должен сказать, что я смущен тем, что является правильным способом написания моих приложений и, более конкретно, с помощью слов @property/@synhesize.
В книге большинство (не сказать все) примерного кода используют для определения свойства, например,
ViewController.h
@property (strong, nonatomic) NSMutableArray *list;
ViewController.m
@synthesize list;
то весь список синтезов кода доступа с
self.list
или даже просто
list
Теперь в каждом примере кода WWDC, который я прочитал, я вижу, что программисты определяют свойство, но затем в файле .m они делают такие вещи, как
@synthesize list = _list;
и иногда доступ
self.list
или
_list
Я смущен. Какова правильная практика? Поскольку программисты Apple все используют подчеркивание, я думаю, что я должен сделать это именно так, но почему книга не сделала этого? Есть ли разница между списком и _list? И более того, поскольку я нахожусь в одном и том же объекте, почему когда-то используют self.list, а иногда list/_list.
Иногда они не используют @synthesize, я предполагаю это, когда они хотят переписать свои собственные аксессоры и мутаторы (что никогда не бывает до сих пор).
Я читал здесь и там в Интернете, но ничего не было достаточно ясно, чтобы правильно настроить мой разум, поэтому я рассчитываю, что StackOverflow принесет свет здесь.
И последнее, но не менее важное, я предпочитаю и отвечаю на основе текущей практики IOS 6/практики. Бесполезно говорить мне, как правильно это сделать в более ранних версиях iOS.