2012-06-21 4 views
-1

Можно создать дубликат:
@property @synthesizeЧто касается @property и @synthesize

Привет я нашел во многих приложениях после создания @property мы должны объявить @synthsize также, но я хотел бы знать, разница между

NSArray *_failedBankInfos; 

@property (nonatomic, retain) NSArray *failedBankInfos; 
@synthesize failedBankInfos = _failedBankInfos; 

и

@property (nonatomic, retain) NSArray *_failedBankInfos; 
@synthesize _failedBankInfos; 

кто может это объяснить.

+2

Пожалуйста, сделайте поиск есть много вопросов по этой теме. http://stackoverflow.com/questions/2032826/property-synthesize – iNoob

ответ

3

@synthesize сопоставляются свойство с декларацией Ивар, т.е. будет создавать методы получения и установки без необходимости разработчик явно реализовать методы доступа и управления памятью в них (в соответствии с параметрами внутри @property например: retain, copy .). Итак, когда мы используем *_iVar (который, как предполагается, является частным iVar в соответствии с соглашениями об именах), и мы хотим, чтобы методы доступа выглядели как те, у которых нет «_», например: [aClass getIVar], а не [aClass get_iVar], мы сопоставляем _iVar с @synthesize iVar=_iVar к свойству @property(retain/copy/assign,atomic/nonatomic) NSObject *iVar;

PS: см Также Автоматический подсчет ссылок в прошивкой> = 5.0 в Ray's

+0

hi ishak спасибо за ваш ответ. Здесь вы можете объяснить, когда нам нужно использовать _ и когда вам не нужно это использовать. – GNJ

+0

эй, привет, привет! Его просто соглашение об именах, указывающее, что iVar предполагается закрытым, то есть не видимым для других классов (так называемая инкапсуляция в ООП), поэтому хорошо, если мы объявим соответствующий @property в .m-файле класса, а не .h, так что сам класс может использовать свойство, а другие - нет. –

+0

ok спасибо большое ishak – GNJ

Смежные вопросы