IBActions foo и foo: - PullRequest
       5

IBActions foo и foo:

0 голосов
/ 21 августа 2010

В Интерфейсном Разработчике I в Библиотеке-> Классы, когда я выбираю класс, созданный в XCode, а затем отображаю Действия, я вижу два с одинаковым именем:

foo
foo:

В чем разницамежду этими двумя фоо?

Ответы [ 2 ]

2 голосов
/ 21 августа 2010

foo - это метод, который не принимает никаких аргументов.foo: передает аргумент или аргументы в свой метод.

Пример:

-(IBAction)foo;

будет показано как foo в IB.

-(IBAction)foo:(id)sender;

будет отображаться как foo: в IB.

Я не знаю, почему у них одно и то же имя, у вас они установлены таким образом?

1 голос
/ 22 августа 2010

IB предполагает, что если вы создаете файлы класса с использованием IB, то вы будете использовать sender , и поэтому он создает конструкцию

-(IBAction)foo:(id)sender;

Обычно вам понадобится информация о отправителе , поэтому я бы придерживался этой конструкции. Если вам не нужен sender в вашей реализации, просто проигнорируйте его.

-(IBAction)foo:(id)sender {
    [someObject doAMethod];
}
...