какао - ссылка на метод на родителя - PullRequest
0 голосов
/ 24 марта 2010

У меня был метод на моем главном контроллере вида, называемый "calcThis".

Этот метод был запущен, очевидно, как

int newValue = [self calculateThis:myVariable];

когда я запускаю его из контроллера вида.

Затем я создал статический класс, и мне нужно оттуда запустить этот метод.

Как мне ссылаться на этот метод из этого класса, используя только относительные ссылки, такие как super, superview, делегат и т. Д. Я не могу использовать имя класса, определенное в делегате, потому что этот статический класс используется в нескольких моих приложениях.

Мне нужно подняться в иерархию, я представляю себе один уровень и получить доступ к методу там ...

спасибо.

Ответы [ 3 ]

1 голос
/ 25 марта 2010

Определите ваши служебные методы в категории NSObject или связанных подклассов NSObject. Что вы сделали.

Добавление (id) отправителя в ваш метод будет работать. Тогда ваш метод может ссылаться на объект, который вызвал его. Что-то вроде этого.

+(int)calculateThis:(id)sender userInfo:(id)info;

тогда ваш звонок становится.

int newValue = [NSObject calculateThis:self userInfo:myVariable];
0 голосов
/ 25 марта 2010

Вы говорите о суперклассе ? Если это так, вы используете [super ...].

0 голосов
/ 24 марта 2010

Если вы намереваетесь создать класс, который вы можете использовать без его инициализации, это возможно с помощью методов класса. Например, если я хочу создать класс с именем MyClass с помощью метода doSomethingWith:, я бы определил следующее:

В MyClass.h:

@interface MyClass : NSObject {

}

+(void)doSomethingWith:(id)thisObject;

@end

В MyClass.m:

#import "MyClass.h"

@implementation MyClass

+(void)doSomethingWith:(id)thisObject
{
    // Your code goes here.
}

@end

Чтобы ссылаться на этот метод в другом классе, вы можете использовать объект класса для MyClass следующим образом:

[MyClass doSomethingWith:@"Hello, World!"];

Это на самом деле не типичный шаблон проектирования Cocoa или Cocoa Touch, но он может быть полезен для таких вещей, как вычисления.

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