一下内容均为个人学习使用, 有不足之处请拍砖.
使用代码创建窗口, 没有反应, 无法进入 didFinishLaunchingWithOptions 方法.
报错描述: 使用代码创建窗口, 没有反应, 无法进入 didFinishLaunchingWithOptions 方法.
报错原因: 没有正确重写 didFinishLaunchingWithOptions 方法, 或者修改错写了方法没发现
解决方案: 正确重写 didFinishLaunchingWithOptions 方法
reason: 'couldn't find a common superview for ...UILabel:0x7f8ec05c3ab0 frame = (0 0; 0 0);
报错原因 couldn't find a common superview for ... frame = (0 0; 0 0); 使用 masonry 前没有把对象加入父控件
解决方案: 在 masonry 控制对象约束前把对象增加进入某控件
[self.viewaddSubview:label];
Duplicate declaration of method 错误原因: 复制方法的声明(重复定义, 重复声明)
duplicate symbols for architecture 错误原因: 重复导入. m 文件或者错误 import .m 文件
解决方案: 删除相同的声明, 定义
Application windows are expected to have a root view controller at the end of application launch'
报错原因: 没有设置窗口的根控制器
解决方案: self.window.rootViewController= VC;// 设置根控制器
Could not find a storyboard named 'main' in bundle NSBundle
报错原因: 没有找到名称为 main 的 storyboard 默认是 Main.storyboard
解决方案: UIStoryboard*storyboard = [UIStoryboardstoryboardWithName:@"main"bundle:nil];m 改成大写
CUICatalog: Invalid asset name supplied: (null)
报错原因: Incompatible pointer types sending 'UIImage *' to parameter of type 'NSString * _Nonnull'
模型类型与视图使用模型设置数据时不匹配
解决方案: 检查模型类型, 使得视图对象里使用其时一致.
错误描述 : Static table views are only valid when embedded in UITableViewController instances
错误原因 : 错误的使用了 talbe View 的静态 cell , 静态的 cell 只能在 UITableViewController 的实例对象 中使用
解决方案 : 使用动态的 cell , 在 table View 的属性 content 中选择 Dynamic prototypes
configureCellForDisplay:forIndexPath 没有绑定 Identifier
错误描述:-[UITableView _configureCellForDisplay:forIndexPath:]
Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'UITableView 后面一堆 UITableView 的属性
错误原因: 没有分配, 绑定 cellForRowAtIndexPath 方法中对象 cell 的 ID, 导致对象没有创建
解决方案: 分配, 绑定 storyboard 中 tableViewCell 的属性 ID 同创建 cellID
[约束警告] Unable to simultaneously satisfy constraints. 可能有重复约束
原因: 系统自动判断 代码 和 编辑器中可能有重复约束, 可能会出错
Probably at least one of the constraints in the following list is one you don't want.
- Try this:
- (1) look at each constraint and try to figure out which you don't expect;
- (2) find the code that added the unwanted constraint or constraints and fix it.
- (
解决方案: 修改某个对象约束的优先级
setValue:forUndefinedKey:]:this class is not key value coding-compliant for the key xxxx
原因: 模型的属性和 plist 文件不匹配
根本原因: 属性缺失错误 key 后面的 XX // 找属性, 数据类型, 基本数据类型是不是多了 *
1. 找不到同名的 plist 数据和模型属性
改正: 修改 plist 或模型的名称保持一致
2. 模型不是指针类型的写了 * 号
改正: 修改模型的类型或者去掉 * 号
原因: xib 文件没有选择 (链接) 视图名称 导致模型给视图赋值报错 e.g.shopView.shop= shop;
解决方案: 修改 xib 的 Custom Class
报错描述: Failed to instantiate the default view controller for UIMainStoryboardFile 'Main' - perhaps the designated entry point is not set?
报错原因: 没有设置指向控制器的箭头 is Inital View Controller
解决方案: 属性页面 View Controller 设置 is Inital View Controller 为 YES
变量冲突 copyWithZone unrecognized selector sent to instance
报错描述:-[UILabel copyWithZone:]: unrecognized selector sent to instance 0x7fff21746b20
报错原因 : 属性和变量名冲突
解决方案: 修改属性或者变量名
坏指针 使用代理方法时 EXC_BAD_ACCESS
错误描述:
错误原因: 写错了 让代理执行代理方法前的判断语句, 写成了执行语句.
- if([self.delegateperformSelector:@selector(addVC:andAdditem:)]) {
- GLaddItem*additem = [GLaddItemaddItemWithName:self.nameTextF.textandNum:self.tellTextF.text];
- [self.delegateaddVC:selfandAdditem:additem];
- [self.navigationControllerpopViewControllerAnimated:YES];
- }
解决方案: 把 performSelector 方法改成 respondsToSelector
- if([self.delegaterespondsToSelector:@selector(addVC:andAdditem:)]) {
- GLaddItem*additem = [GLaddItemaddItemWithName:self.nameTextF.textandNum:self.tellTextF.text];
- [self.delegateaddVC:selfandAdditem:additem];
- [self.navigationControllerpopViewControllerAnimated:YES];
- }
坏指针 EXC_BAD_ACCESS Conflicting return type in implementation of 'addItem': '数据类型 x' vs '返回值'
错误描述: Conflicting return type in implementation of 'addItem': 'GLaddItem *' vs 'void'
运行时 , 访问变量时 , 导致坏指针
错误原因: 定义的方法名和变量名重复
解决方案: 修改方法名或变量名称
loaded the 'xxx' view outlet was not set
错误描述'-[UIViewController _loadViewFromNibNamed:bundle:] loaded the"GLEditController"nib but the view outlet was not set.'
报错原因: 通过 xib 描述的控制器没有连续 view
解决方案: 在 xib 中连接 Owner 的 view
Incompatible pointer to integer conversion assigning to 'UITableViewCellSeparatorStyle' (aka 'enum UITableViewCellSeparatorStyle') from 'UISwitch *'
提示 赋值不正确, 对象应该是个枚举值
isEqualToString,length 模型类, 模型对象使用混乱
- -[GLWine isEqualToString:]
- -[GLWine length]: unrecognized selector sent to instance
错误原因: 赋值了不正确的对象 模型数组里面是模型类对象, 不是模型对象
解决方法: 先创建模型类对象, 再使用模型对象
- GLWine*wine =self.wines[indexPath.row];
- cell.imageView.image= [UIImageimageNamed:wine.image];
字典转模型没有值, 报错[__NSCFString objectForKeyedSubscript:] [__NSCFDictionary length]
没有值:
1. 控制器重写模型数组的 get 方法中首先没有初始化数组
_wines= [NSMutableArrayarray]; 没初始化添加的对象为空 null
- 2[__NSCFString objectForKeyedSubscript:]: unrecognized selector sent to instance
- [__NSCFDictionary length]: unrecognized selector sent to instance
- Incompatible pointer types assigning to 'NSString *' from 'NSDictionary *'
报错原因: 没有写完整字典, 注意在模型对象中用字典赋值的字典书写完整性, forin 一般是遍历数组,
解决方法: 检查字典书写完整性, 并根据数据源 (plist 或网络) 修改
tip 提示: 若是字典里 dict[@"cars"]字典 key 输入不正确, 只会导致没有数据然而不会报错.
tableView 代理对象没有实现方法
[ViewController tableView:numberOfRowsInSection:]: unrecognized selector sent to instance
0. 代理对象没有声明对应的协议
Assigning to 'id _Nullable' from incompatible type 'ViewController *const __strong'self.tableView.dataSource=self; 或者拖线给控制器(其他代理对象)
1. 代理对象没有实现必须实现的协议方法 1
Method 'tableView:numberOfRowsInSection:' in protocol 'UITableViewDataSource' not implemented
2. 代理对象没有实现必须实现的协议方法 2
Method 'tableView:numberOfRowsInSection:' in protocol 'UITableViewDataSource' not implemented-[ViewController tableView:numberOfRowsInSection:]
3. 代理对象没有实现必须实现的协议方法 3Method 'tableView:cellForRowAtIndexPath:' declared here
-[UITableView _configureCellForDisplay:forIndexPath:]
解决方法 必须实现:
- -(NSInteger)numberOfSectionsInTableView:(UITableView*)tableView// 不实现返回 1
- -(NSInteger)tableView:(UITableView*)tableView numberOfRowsInSection:(NSInteger)section
- -(UITableViewCell*)tableView
写错标点
报错: Expected ']' or ','
原因: 1. 数组连接符号用错 解决方案: 需要用 , 逗号链接
2. 数组最后一个元素写了连接符号 解决方案: 去掉最后一个元素后的连接符号
3.Expected ';' after expression 简写数组, 最后没有写分号 解决方案: 加上语句结束符号 ;
约束错误
Unable to simultaneously satisfy constraints.
Probably at least one of the constraints in the following list is one you don't want.
- Try this:
- (1) look at each constraint and try to figure out which you don't expect;
- (2) find the code that added the unwanted constraint or constraints and fix it.
无法同时满足的约束.
可能至少在以下列表中的约束之一是一个你不想要.
试试这个: (1) 看看每个约束和试着去弄了, 你不会指望;
(2) 找到添加不必要的约束或限制的代码并修复它.
错误原因 1:// 把 A 对象的底部等于 B 右边, 对应连线找不到
make.bottom.equalTo(blueView.right);
错误原因 2:// 同一个对象重复写了同一个约束
- make.top.equalTo(blueView.top);
- make.top.equalTo(blueView.bottom);
- Could not load NIB in bundle with name XXX
原因 reason: 'Could not load NIB in bundle:'NSBundle 找不到要读取的 nib
(loaded)'with name'GLshopView''
解决方案: 把 xib 的名字改成何视图类名一样
Auto property synthesis will not synthesize property 'title'; it will be implemented by its superclass, use @dynamic to acknowledge intention
错误原因: 自动属性合成不会合成属性 title; 它将由它的超类, 使用承认意图 @dynamic 执行
UILabel...title
改正: UILabel 不要使用 title 作为属性标识符
No visible @interface for 'NSArray<__kindof UIView *>' declares the selector 'removeLastObject'
错误原因: NSArray 是不可变数组 不能使用删除最后一个元素
解决方案: 使用 NSMutableArray 或者[self.shoptable.subviews.lastObjectremoveFromSuperview];
-[__NSArrayM objectAtIndex:]: index 6 beyond bounds [0 .. 5]'-[__NSArrayM objectAtIndex:]: index 6 beyond bounds [0 .. 5]' -[__NSArrayM objectAtIndex:]: index 6 beyond bounds [0 .. 5]'
index 0 beyond bounds for empty array
错误原因: 数组下标越界了
解决方案: 打印检查数组的个数, 并根据需要修改
unrecognized selector sent to instance
原因: 调用了一个不存在的方法, 方法被删掉 / 注释 / 名称修改
解决: 认真检查方法名, 使用正确并且存在的方法名
not key value for the key... 多余连线
原因: IBOutlet 属性代码被删掉 / 注释了, 但是属性连线还在
根本原因: 属性缺失错误 key 后面的 XX // 找属性
解决: 将 storyboard 残留的连线删掉, 或在把线连上
Receiver type 'NSTextAlignment' (aka 'enum NSTextAlignment') is not an Objective-C class
错误原因 :is not an Objective-C class 属性返回值是个枚举, 后面写了个类调用方法
解决方案: 直接写枚举值
来源: http://www.bubuko.com/infodetail-2731491.html