Objective-C - метод доступа с другого контроллера - PullRequest
1 голос
/ 02 мая 2011

У меня есть маленький вопрос о получении доступа к методу в другом контроллере, ну, я пытаюсь это.Так, например, у меня есть контроллер A и B. В контроллере A я запрограммировал метод, теперь я хочу получить доступ к нему через контроллер B.

Что я сделал в классе A в заголовочном файле:

+(void)goBack;

и в файле реализации:

+(void)goBack {
NSLog(@"go back");
}

в контроллере B я делаю это, чтобы получить доступ к методу в контроллере A:

+(void)goPreviousArticle:(id)sender {
ViewProductInformation_ViewController *theInstance = [[ViewProductInformation_ViewController alloc] init];
[theInstance goBack];
}

Однако, когда я выполняю программу, она не работает, программа просто выключается, когда я делаю команду, щелкнув по функции goBack в контроллере B, я получаю ссылку на метод в контроллере A.

Кто-нибудь имеетидея, в чем может быть проблема?

спасибо заранее,

снежный

Ответы [ 4 ]

3 голосов
/ 02 мая 2011

Это довольно просто ... вы просто смешали объявление класса и метода экземпляра: знак "+" означает, что метод является методом класса.В вашем случае это должно быть "-", поэтому

-(void)goBack; // a instance method declaration!

Надеюсь, это поможет.

Класс против объявления метода экземпляра ... см. Также В чем разница между классом иметоды экземпляра?

0 голосов
/ 02 мая 2011

Вам не нужно объявлять статические функции, которые вы можете написать так:

-(void)goBack {
NSLog(@"go back");
}

В классе A и то же в классе B:

-(void)goPreviousArticle:(id)sender {
ViewProductInformation_ViewController *theInstance = [[ViewProductInformation_ViewController alloc] init];
[theInstance goBack];
}

Тогда используйте их. Я думаю, что в этом случае приложение не будет сбой.

0 голосов
/ 02 мая 2011

Поскольку goBack является статическим методом класса A, вам не нужен экземпляр A для вызова его метода, вы можете просто вызвать его следующим образом:

[ClassA goBack];

0 голосов
/ 02 мая 2011

Вы объявляете goBack как метод CLASS (с предшествующим "+").Измените + на -.

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