создание экземпляров в цели с - PullRequest
0 голосов
/ 01 октября 2010

Вот мой код:

//ECHOAppDelegate.m
@implementation ECHOAppDelegate
 ...
 @end

//PtyView.m
 @interface PtyView (PtyPrivate)
 -(void)startTask;
 -(void) didRead: (NSNotification *)fileNoty;
 @end

 @implementation PtyView
 ...
 -(void)startTask {
 //starts task
 }
 @end

Теперь, как мне вызвать "startTask" из ECHOAppDelegate.m? Мне нужно создать экземпляр? Я абсолютный новичок: D

Любой пример кода будет потрясающим!

Спасибо, Илия

Ответы [ 3 ]

0 голосов
/ 01 октября 2010

-(void)startTask; представляется частной реализацией и теоретически не должен вызываться из внешних классов.

Чтобы ответить на ваш вопрос, вы можете назвать его примерно так:

PtyView *v = [[PtyView alloc] init];
[v startTask];
[v release];

Хотя вы получите предупреждение о том, что PtyView может не отвечать на startTask.Поскольку он не находится в общедоступном интерфейсе класса.

Обновление : Приведенный выше код предполагает, что при возврате startTask с этим объектом покончено.Но что-то подсказывает мне, что вы можете использовать асинхронные обратные вызовы.Если это так, то startTask может немедленно вернуться, и вы не отпустите его тогда и там.Обычно в этом случае вы будете уведомлены PtyView о завершении задания.Таким образом, вы освобождаете его, когда задача завершена.

Update2 : сделать метод общедоступным легко.Вы просто объявляете это в общедоступном интерфейсе (файл заголовка класса):

//in PtyView.h
@interface PtyView
-(void)startTask;
@end

//in PtyView.m
@implementation PtyView
...
-(void)startTask {
//starts task
}
@end

Обратите внимание, что в объявлении интерфейса не определена категория.

0 голосов
/ 01 октября 2010

Как насчет подклассов ECHOAppDelegate?(Затем убедитесь, что PtyView наследуется от NSObject?)

0 голосов
/ 01 октября 2010

self представляет текущий объект.

Вам просто нужно вызвать такой метод.

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