target-c (iphone sdk) метод доступа к экземпляру из отдельного класса - PullRequest
0 голосов
/ 28 января 2010

Я знаю, что это довольно хорошо опубликованная вещь, но я все еще не могу решить это.

У меня есть экземпляр метода saveAllDataJobs в Jobs.m.

- (void) saveAllDataJobs { ... }

Я нахожусь в DetailViewController.m и хочу запустить метод saveAllDataJobs, который находится в Jobs.m. Что именно мне нужно для запуска этого кода.

Извините за повторный вопрос, но я не могу разобраться.

Привет

Ответы [ 2 ]

1 голос
/ 28 января 2010

Читайте о "делегировании" в документах. Вот основы:

Когда вы создаете DetailViewController, вы даете ему ivar:

@interface DetailViewController {
    id delegate;
}

@property (assign) delegate;
@end

@implementation DetailViewController

@synthesize delegate;

@end

Тогда:

DetailViewController *controller = [[DetailViewController alloc] initWithNibName...]
controller.delegate = jobs; // "jobs" is of class Jobs, instantiated somewhere else

Позже, когда вам нужно вызвать какой-то метод для заданий внутри detailViewController, вы делаете

if ([self.delegate respondsToSelector:@selector(saveAllDataJobs)]) {
    [self.delegate saveAllDataJobs];
}

Есть больше подробностей об этом, но это основной шаблон.

0 голосов
/ 28 января 2010

Вызовите метод с помощью [someJobsInstance saveAllDataJobs]?

Разве это не ответ на ваш вопрос, тогда вам нужно больше объяснить, чего вы пытаетесь достичь. У меня такое ощущение, что это больше связано с архитектурой приложения, чем с вызовом методов.

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