#xcode #properties
#xcode #свойства
Вопрос:
Я проработал несколько книг по X-code, файлам документов Apple и руководствам YouTube. Однако я замечаю, что некоторые авторы (т. Е. Некоторые книги) помещают операторы @property для всех своих IBOutlets — imageviews, меток и кнопок, в то время как в других книгах объекты, перечисленные в заголовке, не «присвоены свойствам» и синтезированы в .m.
Я знаю, что это как-то связано с установщиками, получателями и средствами доступа, но не мог бы кто-нибудь разъяснить мне (по возможности без этих слов), когда вы используете @property, а когда нет? Извините, что задаю, кажется, глупый вопрос, но я еще не получил интуитивного представления о том, что происходит на самом деле.
Спасибо.
-Ограбить
Комментарии:
1. Привет, @Rob Smythe, я надеюсь, ты это видишь, но я только что заглянул в твой аккаунт. Оказывается, вы задали около 5 вопросов людям, которые ответили на вопрос, но вы не дали ни одного «наилучшего ответа». Когда кто-то отвечает на ваши вопросы и это решает ваши проблемы, вы нажимаете маленькую зеленую галочку рядом с их ответом. Как и прямо под всем этим текстом, видите ли вы # 1 со стрелками, указывающими вверх над ним и вниз под ним в левой части моего ответа? Там есть небольшая галочка.
Ответ №1:
Всякий раз, когда вам нужно изменить что-то вроде UIButton или чего-либо, что требует использования указателя для доступа к нему, вы используете @property . Все, что это делает, это создает методы ‘Getter и Setter’. Если вы программировали на другом языке, вы, вероятно, понимаете, что это такое, но если вы этого не делаете, это трудно объяснить. Если вы хотите лучше понять, почему существует @property, я бы немного изучил c . Но ниже приведено объяснение в терминах Objective C, что это такое
@property — это директива Objective-C, которая объявляет свойство. «сохранить» в круглых скобках указывает, что установщик должен сохранить входное значение, а остальная часть строки просто указывает тип и имя свойства.
#import "Photo.h"
@implementation Photo
@synthesize caption;
@synthesize photographer;
- (void) dealloc
{
;
[photographer release];
[super dealloc];
}
@end
Директива @synthesize автоматически генерирует для нас установщики и получатели, поэтому все, что нам нужно реализовать для этого класса, — это метод dealloc .
Отличный веб-сайт, с которого я получил эту информацию, и содержит гораздо больше:http://cocoadevcentral.com/d/learn_objectivec /