Я новичок в методах делегирования. Мне интересно, почему мой «responsesToSelector» не вызывается для моего делегата. Я уверен, что у меня все в нужном месте. Если вам нужна дополнительная информация, пожалуйста, дайте мне знать !!! Ive огляделся, но я все еще не нашел решение, которое работает!Делегат отвечаетToSelector, который не вызывается для протокола
Спасибо всем!
MODAL.h
@protocol Profession <NSObject>
-(void)profession:(NSString *)job;
@end
@interface ProfessionListingViewController : UIViewController <UITableViewDataSource, UITableViewDelegate, UIScrollViewDelegate>{
NSString *string;
}
@property (nonatomic, weak) id<Profession> myDelegate;
@end
MODAL.m
@synthesize myDelegate;
-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{
self.profession = @"Testing!!";
if([self.myDelegate respondsToSelector:@selector(profession:)]){
[self.myDelegate profession:self.profession];
}
[self dismissViewControllerAnimated:YES completion:nil];
}
view.h
#import <UIKit/UIKit.h>
#import "ProfessionListingViewController.h"
#import "LocationViewController.h"
@interface ProfessionViewController : UIViewController <Profession>
VIEW.m
-(IBAction)toProfessionListView:(id)sender{
ProfessionListingViewController *modal = [[ProfessionListingViewController alloc] init];
modal.myDelegate = self;
[self performSegueWithIdentifier:@"ModalProfessionList" sender:sender];
}
-(void)profession:(NSString *)job{
NSString *test = job;
NSLog(@"%@", test);
}
Я предполагаю, что вы имеете в виду, что ваш делегат не реагирует на селектор? Или проблема заключалась в том, что линия с 'responsesToSelector' не была достигнута? – Krumelur
Попробуйте установить точку останова на 'if ([self.myDelegate replysToSelector: @selector (профессия:)]) {' line. Убедитесь, что self.myDelegate действительно является экземпляром вашей реализации Profession. – Krumelur
@ Krumelur Да, он не отвечает на селектор. Он не входит в оператор if и идет прямо сейчас, чтобы отклонить. – hparmar