Вызов метода внешнего объекта ViewController

Позвольте мне сначала объяснить контекст здесь. Я разрабатываю приложение iOS 6.1, используя Xcode 4.6. Я создал контроллер табличного представления, в котором я подключил 4 вида. Первая точка зрения - это main вид, над которым я работаю.

Прямо сейчас у меня есть две кнопки на main экране. Кнопка " yes и " no. Я создал подкласс viewcontroller_main и связал его с моим main видом, изменив его класс в инспекторе идентификации.

Я создал свой собственный класс myclass который имеет одну функцию, называемую go. В моем viewcontroller_main.h я добавил -(********)button_no и еще один для да. Затем я связал их, щелкнув main вид и связав функции с кнопками через инспектор соединений.

Теперь вот моя проблема. Моя yes кнопка в настоящее время только регистрирует "да" на консоль с помощью NSLog т.е.

//viewcontroller_main.m

- (********)button_yes {
 NSLog(@"Yes was pressed");
}

Тем no менее, моя кнопка no создает объект myclass* myname а затем myname.go. У меня есть другая функция NSLog для отображения "нет" в реализации метода go в файле myclass.m.

//viewcontroller_main.m

- (********)button_no {
 myclass* myname;
 myname.go;
}

//myclass.m

- (void)go {
 NSLog(@"no was pressed")
}

Как вы объясните это поведение? Почему я не вижу консольный журнал при вызове myname.go?

1 ответ

Во-первых, классы всегда должны быть капитализированы. Поэтому вы должны использовать ViewController_main и Myclass.

Во-вторых, когда вы делаете myclass* myname; вы не создаете объект. Если вы хотите распечатать myname (NSLog(@"%@", myname)), вы обнаружите, что оно равно нулю. При этом попробуйте что-то вроде:

myclass* myname = [[myclass alloc] init];

licensed under cc by-sa 3.0 with attribution.