Создают ли свойства неявно член класса с таким именем и типом? - PullRequest
2 голосов
/ 13 февраля 2012

Я просматривал учебник по раскадровке здесь: http://www.raywenderlich.com/5138/beginning-storyboards-in-ios-5-part-1

Когда я заметил, что автор создал свойства с именем и типом, не создавая переменные-члены в разделе интерфейса.Ранее, насколько я понимаю, объявление @ property / @ synthesize в цели C создало только метод получения / установки для переменной-члена с таким именем и типом.Я не думал, что переменная была неявно создана с помощью @ property / @ synthesize.Член класса неявно создан?Если нет, то как работает этот код:

@interface Player : NSObject

@property (nonatomic, copy) NSString *name;
@property (nonatomic, copy) NSString *game;
@property (nonatomic, assign) int rating;

@end

1 Ответ

3 голосов
/ 13 февраля 2012

Да, он неявно создается с ключевым словом @sythesize, если ивара с указанным именем еще не существует.Например, с учетом вышеуказанных свойств:

@synthesize name; // Creates an instance variable called "name"

В качестве альтернативы ...

@synthesize name = _name; // Creates an instance variable called "_name"

Это означает, что вам больше не нужно указывать ивары в вашем классе '@interface.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...