项目总结-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<UITouch *> *)touches withEvent:(UIEvent *)event
{
    if ([touches.anyObject locationInView:nil].y > 20) return;

    NSLog(@"点击了状态栏")
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 173,752评论 25 709
  • 发现 关注 消息 iOS 第三方库、插件、知名博客总结 作者大灰狼的小绵羊哥哥关注 2017.06.26 09:4...
    肇东周阅读 12,262评论 4 61
  • 你会做选择吗?你的选择更明智吗?你有感觉选错了方向,越努力越错吗? 其实人的选择都是有机会成本的,选择了A,就没办...
    路上的幸福_影阅读 416评论 0 4
  • 好像嗖的一下 心就被掏空了 氧气和血液一下子都被抽走了 只剩下空空的心房和心室 残破的毛细血管在上方飘荡 仿佛在诉...
    大棚盖浇饭阅读 241评论 0 0
  • 最近老婆们(泛指所有认识的女人)都狂迷《三生三世十里桃花》,每天挤地铁挨批评都变成了历劫,小成功领奖金都变成了升仙...
    小丸子爸爸教练堂阅读 1,224评论 0 6