Могу ли я вызвать метод ClassB из объекта делегата? - PullRequest
0 голосов
/ 26 августа 2010

Как я могу вызвать метод Objective-C из другого класса?

Например, в xCode у меня есть два скрипта: делегат и еще один. Как я могу вызвать someFunction на script2 от делегата?

1 Ответ

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

Если под «сценарием» вы подразумеваете класс, вам необходимо связать оба класса.

если objectA является делегатом objectB, когда objectB вызывает метод из протокола делегата:

if ([self.delegate resposndsToSelector:@selector(classBdidSomething:)]) {
    [self.delegate performSelector:@selector(classBdidSomething:) withObject:self];
}

О реализации ClassA:

#pragma mark -
#pragma mark Delegate methods
- (void)classBdidSomething:(ClassB *)objectB {
    [objectB methodToBeCalled];
}

Если вы получаете сообщение об ошибке / предупреждение (например, предупреждение: метод -methodToBeCalled не найден) при построении на строке:

[objectB methodToBeCalled];

Это означает, что вы должны импортировать ClassB в ваш ClassA, выполнив:

#import "ClassB.h"
...