经典错误
报错>>>>>>-[UIView setSelected:]: unrecognized selector sent to instance 0x7ff3f35b1070
报错原因>>>>>>错误将UIView当作按钮来使用使用
报错>>>>>>>>-[XMGPerson length]: unrecognized selector sent to instance 0x7ff3f35b1070
报错原因>>>>>>>>错误将XMGPerson当做NSString来使用,比如
id obj = [[XMGPerson alloc] init];
NSString *string = obj;
string.length;
报错>>>>>-[XMGPerson setObject:forKeyedSubscript:]: unrecognized selector sent to instance 0x7ff3f35b1070
报错原因>>>>>>>错误将XMGPerson当做NSMutableDictionary来使用
规律: 方法名里面包含了Subscript的方法,一般都是集合的方法(比如字典\数组)
@implementation UIView
- (UIView *)viewWithTag:(NSInteger)tag
{
// 如果自己的tag符合要求, 就返回自己
if (self.tag == tag) return self;
// 遍历子控件,查找tag符合要求的子控件
for (UIView *subview in self.subviews) {
// if (subview.tag == tag) return subview;
UIView *resultView = [subview viewWithTag:tag];
if (resultView) return resultView;
}
// 找不到符合要求的子控件
return nil;
}
@end
/**
* 可以在这个AppDelegate方法中监听到状态栏的点击
*/
- (void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event
{
if ([touches.anyObject locationInView:nil].y > 20) return;
NSLog(@"点击了状态栏")
}
网友评论