日常编程错误
- Multiple methods named 'count' found with mismatched result, parameter type
错误概述:发现多个参数类型和返回值不相同的count方法
错误发生场景:UITableView dataSource numberOfRowsInSection方法使用二维数组调用方式获取Rows行数
[[self.dataArray objectAtIndex:section] count]
objectAtIndex 返回的是个id类型,id类型调用了count方法,编译器遍历所有的可见头的count方法,编译器会找到多个定义,返回值不一样的,参数类型不一样的,比如count方法在NSArray,NSSet等类上也有实现,或者自己自定义的count 方法。编译器不知道该使用哪个方法,强制指定objectAtIndex的值类型,告诉编译器要调用指定的count方法
[(NSArray *)[self.dataArray objectAtIndex:section] count]
-
cannot jump from switch statement to this case label
switch-case
中是不可以定义对象的,否则就会报错,添加大括号可以修复错误 Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'invalid nib registered for identifier (Sunmesing.XMXMiddleMainTableViewCell) - nib must contain exactly one top level object which must be a UITableViewCell instance'
- static declaration follows non-static declaration
原因是 调用静态函数没有先声明,就是定义在调用之后。调用之前声明一下这个函数。 - Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: '-[UIViewController _loadViewFromNibNamed:bundle:] loaded the "CGColorController" nib but the view outlet was not set.'
加载Nib错误 - Assertion failure in -[PSTableView _configureCellForDisplay:forIndexPath:], /BuildRoot/Library/Caches/com.apple.xbs/Sources/UIKitCore_Sim/UIKit-3698.93.8/UITableView.m:9655
if (cell == nil) { // 报错原因 此处没有判空
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:ClassToString(UITableViewCell)];
}
日常警告
-
ld: warning: directory not found for option
警告原因:将文件夹删除,但是之前添加过该路径
解决方法 :打开项目target
->build setting
->library search path
或framework search path
-> 移除已经无效的路径 -
warning: no rule to process file
警告原因:.h文件出现在target
->build phases
->compile sources
中
解决方法: 移除即可 -
xx is missing from working copy
警告原因:删除不用图片后图片后
解决方法:Xcode - Preferences -> Source -> Enable Source Control
禁用Xcode 自带Source Control Manager
-
屏蔽编译器警告
#pragma clang diagnostic push
#pragma clang diagnostic ignored ""
//代码段
#pragma clang diagnostic pop
打包错误
- application loader 打包报
Please sign in with an app-specific password. You can create one at appleid.apple.com.
错
原因: 开启了二次认证
解决方案:关闭二次认证
或登录苹果官网,找到安全选项-> app专用密码 -> 生成密码 -> 用新生成的密码登录
网友评论