В Interface Builder I в Library-> Классы, когда я выбираю класс, который я сделал в XCode, а затем отобразить действия, я могу видеть два с тем же именем:IBActions Foo и Foo:
foo
foo:
Что разница между этими двумя foos?
В Interface Builder I в Library-> Классы, когда я выбираю класс, который я сделал в XCode, а затем отобразить действия, я могу видеть два с тем же именем:IBActions Foo и Foo:
foo
foo:
Что разница между этими двумя foos?
foo
- метод, который не принимает никаких аргументов. foo:
передает аргумент или аргументы в свой метод.
Пример:
-(IBAction)foo;
будет показано, как foo
в IB.
-(IBAction)foo:(id)sender;
будет отображаться как foo:
в IB.
Я не знаю, почему у них одно и то же имя, есть ли у вас такая установка?
IB предполагает, если ваше создание файлов класс с помощью IB, что вы будете с помощью отправителя и поэтому он создает конструкт
-(IBAction)foo:(id)sender;
Вы обычно нужна информация о отправителе так что я бы придерживаться эта конструкция. Если вам не нужен отправитель в вашей реализации, просто проигнорируйте его.
-(IBAction)foo:(id)sender {
[someObject doAMethod];
}
Я сделал один в IB, а затем я пошел в XCode и сделал еще один, чтобы я мог написать его реализацию. –