博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
iOS开发实践之xib载入注意问题
阅读量:4881 次
发布时间:2019-06-11

本文共 884 字,大约阅读时间需要 2 分钟。

     xib都会addSubview加入到控制器view中时程序崩溃。错误提示:

'NSInvalidArgumentException', reason: '-[ UITapGestureRecognizer superview]: unrecognized selector sent to instance 0x7ffae1c1b680'

   错误非常明显说的是 ,找不到UITapGestureRecognizer superview]方法.

看看存在问题的代码:

- (void)viewDidLoad {    [super viewDidLoad];        ToolBar *toolBar = [ToolBar toolBar];    [self.view addSubview:toolBar];}
#import "ToolBar.h"@implementation ToolBar//返回xib view+(instancetype)toolBar{   NSArray *arr = [[NSBundle mainBundle] loadNibNamed:@"ToolBar" owner:nil options:nil];    return [arr lastObject];}@end
看代码我们想要返回的是ToolBar 对象。怎么返回了
UITapGestureRecognizer???

toolBar方法打印bundle中ToolBar的数组。发现存在两个对象。并且第一个不是我们想要的TooBar

再看看xib,真的有两个对象。 

   结论:基本能够确定[arr lastObject]; 返回的不是我们想要的结果。 改为[arr firstObject]问题就攻克了。 所以以后xib返回的是数组那一个才是我们想要的,要搞清楚。

ps:xib对象是依照放进去的顺序排列的,上图看到的上到下的顺序不一定是xib文件的对象顺序。

转载于:https://www.cnblogs.com/blfbuaa/p/7066411.html

你可能感兴趣的文章
ExtJs4.2 RadioGroup CheckboxGroup
查看>>
InnoDB Undo Log
查看>>
在Application中集成Microsoft Translator服务之使用http获取服务
查看>>
flask页面中Head标签内容为空问题
查看>>
Centos7 Putty SSH密钥登录
查看>>
HDU 6330--Visual Cube(构造,计算)
查看>>
小说Symbian的签名
查看>>
Objective-C中ORM的运用:实体对象和字典的相互自动转换
查看>>
高级java面试宝典
查看>>
声明,本博客文章均为转载,只为学习,不为其他用途。感谢技术大牛的技术分享,让我少走弯路。...
查看>>
centos7.1下 Docker环境搭建
查看>>
c# 导出Excel
查看>>
Status: Checked in and viewable by authorized users 出现在sharepoint 2013 home 页面
查看>>
python数据预处理
查看>>
Python之路,Day21 - 常用算法学习
查看>>
Android安全-代码安全1-ProGuard混淆处理
查看>>
部署core
查看>>
mysql 时间设置
查看>>
如何在 Xcode 中修改应用的名字
查看>>
有关交换机——熟悉原理是必须的【转载】
查看>>