1
我有兩個類ID代表無法識別的選擇發送到實例
類阿文件
@property (nonatomic, weak) id delegate;
-(void)displayAllGroups:(NSArray *)groups;
類上午文件
@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");
}
}
這是實現我曾經ID代表的一類發送group_array
b類。 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'
代表定義?? –
我們可以在沒有定義的情況下使用id委託,無法識別的選擇器有錯誤 – khaskheli
消息很明確 - 設置爲委託的對象是'HomeViewController'的一個實例,它不實現'displayAllGroups:'方法。同樣,你的代碼如圖所示沒有多大意義 - 你分配一個'GroupsViewController' - 但是這是一個局部變量,所以一旦'viewDidLoad'退出就會被釋放。 – Paulw11