项目总结-5

经典错误

报错>>>>>>-[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的方法,一般都是集合的方法(比如字典\数组)

  • 实现系统的ViewWithTag:方法
@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 *)touches withEvent:(UIEvent *)event
{
    if ([touches.anyObject locationInView:nil].y > 20) return;

    NSLog(@"点击了状态栏")
}

你可能感兴趣的:(项目总结-5)