setTag: в Objective-C - PullRequest
       3

setTag: в Objective-C

0 голосов
/ 08 февраля 2011

Как вы называете setTag: для id объектов типа?

Ответы [ 4 ]

2 голосов
/ 08 февраля 2011

Кроме того, если вы не хотите, чтобы ваш компилятор жаловался, и вы знаете тип объекта, вы можете его привести.

[(UILabel *)objById setTag:5];
0 голосов
/ 08 февраля 2011

id не совсем класс. Это универсальный тип, который используется в Objective C для произвольного объекта. Например, метод взятия любого объекта может выглядеть следующим образом

-(void) doIt(id parameter);

Итак, говоря, что ваш объект имеет тип id, информация не добавляется.

Но если вы абсолютно уверены, что ваш объект реагирует на setTag, вы можете просто сделать это: [object setTag:123].
В противном случае просто посмотрите документацию на класс объекта.

0 голосов
/ 08 февраля 2011

setTag следует считать методом, который принадлежит подклассам UIView.Если вы уверены, что рассматриваемый объект действительно является подклассом UIView, вы бы назвали метод как обычно: [someIdInstance setTag:5];

Исходя из вашего вопроса, я бы предположил, что вы, возможно, не понимаете значение id тип.Объект типа id может реально быть указателем на любой тип объекта.Вы не можете гарантировать, что setTag: действительно может быть определено для этого объекта, поэтому обычно код, работающий с указателями id, выполняет следующие шаги:

  id foo = [self getSomePointer];
  if([foo respondsToSelector:@selector(setTag:)]) {
    [foo setTag:4];
  }

Код проверяет, является лиОбъект даже имеет метод, прежде чем пытаться вызвать его.

0 голосов
/ 08 февраля 2011

обычно это выглядит как

object-type.tag = value;

как

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