Iphone сделать личный делегат - PullRequest
0 голосов
/ 05 июля 2010

У меня есть эта проблема .... в моем viewcontroller.h я определил свой класс следующим образом:

myClass* iR;

и после:

@property (nonatomic,retain) IBOutlet myClass* iR;

в myClass.h я добавилthis:

@protocol myClassDelegate <NSObject>
-(void) didLogon:(bool)isLogged;
@end

и после:

@property (nonatomic, assign) id<myClassDelegate> delegate;

сейчас, в моем классе, в методе connectionDidFinishLoading (я использовал nsurlconnection для получения данных входа в систему, я добавил это:

[self.delegate didLogon:true];

в myviewcontroller.h:

<myClassDelegate>

и в myviewcontroller.m:

-(void)didLogon:(bool)isLogged{
...
}

но программа входит в self.delegate didLogon, но в myviewcontroller.mне пошел ... ты понял почему ???

1 Ответ

2 голосов
/ 05 июля 2010

Где вы назначаете делегата? Вам нужно что-то вроде этого:

MyViewController *viewController = [[MyViewController alloc] init];
self.delegate = viewController;

На всякий случай, когда вы вызываете методы делегата, вызывайте их так:

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

Таким образом, если делегат не поддерживает этот метод, ваша программа не будет аварийно завершена, если не распознает этот селектор.

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