Идентификатор делегата, нераспознанный селектор отправлен на экземпляр
У меня два класса
Файл класса А
@property (nonatomic, weak) id delegate;
-(void)displayAllGroups:(NSArray *)groups;
Class Am File
@synthesize delegate;
view didLoad {
_array_groups = [Group getAllGroups:json];
if ([_array_groups isKindOfClass:[NSArray class]])
{
NSLog(@"type of NSArray");//
[delegate displayAllGroups:_array_groups];// error
}
else
{
NSLog(@"not a type of NSArray");
}
}
Это реализация класса A, где я использовал делегат id для отправки group_array
в б класс. B класс это удар
- (void)viewDidLoad {
[super viewDidLoad];
GroupsViewController *groupView=[[GroupsViewController alloc]init];
[groupView setDelegate:self];
}
-(void)displayAllGroups:(NSArray *)groups
{
NSLog(@"all groups arrays are:%@",groups);
}
примечание: ошибка [delegate displayAllGroups:_array_groups];
-[HomeViewController displayAllGroups:]: unrecognized selector sent to instance 0x7fbfcb644b20'
1 ответ
Создание протокола для класса B, как показано ниже
@protocol B_Delegate <NSObject>
@optional
-(void)displayAllGroups:(NSArray *)groups;
@end
И изменение декларации делегата, как показано ниже
@property (nonatomic, weak) id <B_Delegate> delegate;
удалит ошибку