Ваше переосмысление проблемы. По умолчанию все ссылки на все объекты являются указателями.
Это:
IBOutlet UIButton *but1;
... определяет указатель.
Следовательно, все операции по умолчанию с объектами используют указатели. Вы обычно даже не должны думать об этом. Чтобы добавить указатель на UIButton в NSMutableArray, просто используйте (обратите внимание на нотацию self
):
[self.buttons addObject:self.but1];
Обозначение IBOutlet не влияет на ссылки в коде. Именно здесь Interface Builder может анализировать исходный код и выяснять, на какие свойства следует обратить внимание. В противном случае он ничего не делает, и вы можете игнорировать это.
Конечно, я должен спросить: почему вы помещаете в массив кнопки с уже названными свойствами?
Вместо этого:
[[buttons objectWithId:0] setImage:[UIImage imageNamed:@"image1.png"]];
... почему бы просто не сделать это?
[self.but1 setImage:[UIImage imageNamed:@"image1.png"] forState:UIControlStateNormal];
Нет смысла использовать именованные свойства, если вы не используете имена в качестве основной ссылки.