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文件的對象順序。
- 前言
- iOS開發實踐之SQLite3
- iOS開發實踐之FMDB
- Obj-C與javascript交互之WebViewJavascriptBridge
- iOS開發實踐之UIWebView
- iOS開發實踐之多線程(基本概念)
- iOS開發實踐之多線程(NSThread)
- iOS開發實踐之多線程(GCD)
- iOS開發實踐之多線程(單例模式)
- iOS開發實踐之xib加載注意問題
- iOS開發實踐之多線程(NSOperation)
- iOS開發實踐之cell下載圖片(NSOperation)
- iOS開發實踐之cell下載圖片(自定義NSOperation)
- iOS開發實踐之cell下載圖片(SDWebImage)
- iOS開發實踐之JSON
- iOS開發實踐之XML
- iOS開發實踐之GET和POST請求
- iOS開發實踐之網絡檢測Reachability
- iOS開發實踐之MD5加密