@свойство иногда не используется

#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 /