如果方法超过了目标c,那么选择器如何知道哪个方法需要通过选择器调用?
因为我们没有在slector部分传递任何参数......
例:
在tmp.m
文件中
有两种不同参数的方法
-(void)details
{
}
-(void)details:(NSDictionary *)result
{
}
当m使用选择器调用另一个方法时:
[mc detailstrac:[[NSUserDefaults standardUserDefaults] valueForKey:@"userID"] tracid:self.trac_id selector:@selector(details:)];
选择器如何知道调用哪种方法!
我检查了那个
-(void)details:(NSDictionary *)result
{
}
这个方法每次都被调用
-(void)details
{
}
这个?
答案 0 :(得分:3)
Selector将根据您的示例
知道如何调用该方法[mc detailstrac:[[NSUserDefaults standardUserDefaults] valueForKey:@"userID"] tracid:self.trac_id selector:@selector(details:)];
当你调用@selector(details :)时,选择器将调用此方法
-(void)details:(NSDictionary *)result { }
当您调用@selector(详细信息)时,选择器将调用
-(void)details { }
这里的主要区别是 @selector(详情)和 @selector(详情:) 。
希望你理解我的观点! 快乐的编码!