@property иногда не используется - PullRequest
1 голос
/ 09 ноября 2011

Я пробежался по нескольким книгам по X-коду, файлам Apple и учебным пособиям YouTube. Тем не менее, я замечаю, что некоторые авторы (то есть некоторые книги) помещают операторы @property для всех своих IBOutlets - изображений, ярлыков и кнопок, в то время как в других книгах объекты, перечисленные в заголовке, не являются «собственными» и синтезируются в .м.

Я знаю, что это как-то связано с сеттерами, геттерами и аксессорами, но может ли кто-нибудь объяснить мне (без этих слов, если это возможно), когда вы используете @property, а когда нет? Извините за вопрос, который кажется глупым, но я еще не понял, что на самом деле происходит.

Спасибо.

1007 * Роб *

1 Ответ

2 голосов
/ 09 ноября 2011

Всякий раз, когда вам нужно изменить что-то вроде UIButton или что-то, что требует, чтобы вы использовали указатель для доступа к нему, вы используете @property.Все, что это делает, это создает методы «Getter and Setter».Если вы программировали на другом языке, вы, вероятно, понимаете, что это такое, но если нет, это трудно объяснить.Если вы хотите лучше понять, почему @property существует, я бы изучил немного c ++.Но ниже приводится объяснение в Objective C того, что это такое

@property - это директива Objective C, которая объявляет свойство.«Retain» в скобках указывает, что установщик должен сохранять входное значение, а остальная часть строки просто указывает тип и имя свойства.

  #import "Photo.h"      
    @implementation Photo

    @synthesize caption;
    @synthesize photographer;

    - (void) dealloc
    {
        [caption release];
        [photographer release];
        [super dealloc];
    }

    @end

Директива @synthesize автоматически генерирует для нас установщики и получатели, поэтому все, что мы должны реализовать для этого класса, - это метод dealloc.

Отличный веб-сайт, с которого я получил эту информациюи имеет гораздо больше: http://cocoadevcentral.com/d/learn_objectivec/

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