Синтаксис @property target-c - PullRequest
0 голосов
/ 24 мая 2010

Я ищу синтаксис геттера / сеттера. Какой является сеттером, а какой - геттером?

Является ли атрибут readwrite получателем?
Назначен ли сеттер?

@interface SomeClass : NSObject
{
  NSString *str;
  NSDate *date;
} 

@property (readwrite, assign) NSString *str;
@property (readwrite, assign) NSDate *date;

Ответы [ 4 ]

6 голосов
/ 24 мая 2010

Ни получатель, ни установщик. readwrite контролирует, генерируется ли заданный метод или только метод получения, а assign задает схему управления памятью (в этом случае переменные не сохраняются, что, вероятно, является ошибкой).

С полным синтаксисом объявления свойств вы можете ознакомиться с соответствующими документами .

2 голосов
/ 24 мая 2010

Получатель и установщик - это два метода, которые автоматически создаются при использовании @property.По умолчанию получатель будет иметь то же имя, что и свойство, установщик будет иметь имя с префиксом set и суффиксом :;например, для свойства str вы можете вызвать [someobj str], чтобы получить свойство str, а [someobj setStr: somestr].

Атрибуты readwrite и assign предоставляют некоторую информациюо том, как должны быть определены этот метод получения и установки, если вы используете @synthesize для создания определений для вас.readwrite просто говорит, что вам разрешено устанавливать свойство, а assign говорит, как будет установлено свойство.См. документацию для получения дополнительной информации.

2 голосов
/ 24 мая 2010

Ни. Код, который вы разместили, является декларацией интерфейса; методы получения и установки идут в контексте @implementation и обычно создаются с использованием директивы @synthesize, как в

 @synthesize str;
 @synthesize date;

Существует ряд атрибутов, которые могут идти после объявления свойства. В этом случае readwrite указывает, что значение свойства может быть установлено (с использованием синтаксиса someObject.str = @"foo"); обратное значение равно readonly, что означает, что значение свойства не может быть установлено. assign - в отличие от copy или retain - означает, что значение свойства устанавливается непосредственно, тогда как последние два создают копию значения и сохраняют его соответственно.

2 голосов
/ 24 мая 2010

Вы должны проверить эту страницу , она объяснит вещи.

readwrite = свойство может быть прочитано и записано

assign = это свойство, которое не нужно пересчитывать. (альтернатива - «сохранить», что означает, что значения этого свойства retain редактируются при установке и release d при перезаписи.

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