iOS 常见bug收集

 该文章收集我在开发中遇到的问题,因为有些问题上次出现后可能很长时间后会再次出现但是已经忘了当时怎样解决的,会耗费很多时间,故将问题都记录下来,开始可能不是很多,陆续会更新。
  • 1、今天发生一个:EXC_ARITHMETIC (code=EXC_I386_DIV, subcode=0x0))的错误,打断点定位位置如图所示,这是因为arc4random()函数取余时,取余对象为零所致,还有一种可能就是分母为零。但是令人匪夷所思的是该问题只在5s及以下模拟器出问题,6以上模拟器没有问题!!!真机没有进行测试,有兴趣的苹友可以试一试。

  • 2、下面这个错误是因为将字典类型直接当成字符串类型使用所致,类似于rangeOfCharacterFromSet 这样的错误大多是因为类型使用错误所致。而一般这种错误控制台信息提示都比较明确。


  • 3、 Assertion failure in -[UITableView _configureCellForDisplay:forIndexPath:]这个错误
    原因是因为- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath 这个函数的返回值是个null!!

  • 4、下面这一 x86 问题(如下图所示)发生原因主要有:

    • (1.)有框架文件没有被导入或者导入错误,只需导入框架文件即可。
    • (2.)在导入某一文件时,将.m文件当成.h文件导入了所以会出现一个duplicate的错误提示。
    • (3.)重复命名全局变量。


  • 5、Unkonwn class ViewController in Interface Builder file控制台打印如下图问题主要是因为在刚创建工程时将自带的ViewController的.h 和. m文件删除发生的,是因为少了一步操作将storyBoard中控制器关联文件制空或者关联其他控制器文件即可。

  • 6、模态跳转时控制台打印如下警告:Presenting view controllers on detached view controllers is discouraged ,原因是present出来的模态窗口,再次使用present 来弹出其它的子窗口,这是禁止的!只要把self直接模态跳转页面改成从根控制器跳转即可。

 我在这里主要是rootViewController是present出来的所以只需作如下修改后警报消失。

//[self presentViewController:loginVC animated:YES completion:^{
//    NSLog(@"XXX");
//}];
LoginViewController * loginVC = [[LoginViewController alloc] init];
AppDelegate *delegate = (AppDelegate *)[UIApplication sharedApplication].delegate;
[delegate.window.rootViewController presentViewController:loginVC animated:YES completion:^{
        NSLog(@"XXX");
}];
  • 7、关于Unbalanced calls to begin/end appearance transitions for <>警告,这是因为一个view未加载完,你又去加载另一个view导致的。我这里的操作就是在一个控制器的ViewDidLoad中直接present了另外一个控制器导致的。这是不对的,改后警告消失。

  • 8、出现emitted errors but did not return a nonzero exit code to indicate failure关于图片的错误。如下所示:

While reading /Users/*******/Desktop/guwen27/guwen/Vendors/lib/Channels/CmbWallet/SecreteKeyBoard/kb_bg1.imageset/kb_bg1@2x.png pngcrush caught libpng error:
B\233\244`\271\243,lA\233\364\213]>\370U\271\2438P\271\243\350\345\370\277x\345\370\277\252qD\233\244`\271\243\370U\271\243�Y   

Command /Applications/Xcode.app/Contents/Developer/usr/bin/copypng emitted errors but did not return a nonzero exit code to indicate failure

 问题原因:我这里是因为同一Target中导入了相同名字的文件。还有一个原因:一可能是同一文件导入了两次。
 解决办法:project target ->Build Phases -> Copy Bundle Resources 然后搜索你的文件名(如下图所示):

 此时不要随便删除文件,看你报错的文件是哪个文件夹下的,在copy bundle resources 中删除该文件夹下的文件即可解决问题。

  • 9、在程序运行后或者编译后 出现类似警告warning:no rule to process file "xxxxxxxxx" of type sourcecode.c.h for architecture i386 (x86_64/armv7)如下图所示:

 问题原因:具体的不太清楚,可能是不适配ios6,7,8等系统问题
 解决办法:project Target-> Build Phases-->Compile Sources--把 警报的 .h 文件删掉(减掉)即可解决。

10、在使用UIActionSheet同时调用相机相册时发生警报如下
Warning: Attempt to present <UIImagePickerController: 0x292b400>on <**Controller: 0x723c150> 
which is already presenting <UIAlertController: 0xd37b8b0>

 问题原因:因为已经有actionsheet存在了,不能present新的界面出来相机相册与actionSheet冲突;
 解决办法:原来调用相机相册都是在代理方法
-(void) actionSheet:(UIActionSheet *)actionSheet clickedButtonAtIndex:(NSInteger)buttonIndex;中,只需要改到另外一个代理方法- (void)actionSheet:(UIActionSheet *)actionSheet didDismissWithButtonIndex:(NSInteger)buttonIndex;中即可。

  • 11、控制台打印问题 :[] nw_host_stats_add_src recv too small, received 24, expected 28
    [] ____nwlog_simulate_crash_inner_block_invoke dlopen CrashReporterSupport failed
    如下图所示:

这类问题不影响运行就是看着跟崩溃似的不舒服~~
 解决办法:打开Xcode :Product –>Scheme–>Edit Scheme -> Arguments(第二个选项卡) -> Environment Variables
然后再这里面添加一个环境变量 OS_ACTIVITY_MODE 设置值为disable,设置完后clean和build一下 问题就解决了。如下图:

  • 12、使用AFNetWorking时无意中发生的问题Assertion failure in -[AFHTTPRequestSerializer requestWithMethod:URLString:parameters:error:]
    Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'Invalid parameter not satisfying: URLString'

 问题原因:这是使用get请求时发生的,因为传入的url包含无效的参数,在这里传参数时我直接将参数写入url而没有使用参数params,但是参数中包含中文,没有经过utf8。于是悲剧了。


 解决办法:1、将含有中文的url使用utf8格式转一下(如下图所示):


2、使用参数params,根据自己的封装将参数摘出来放在一块然后交给AFNetWorking去处理(如下图所示):


  • 13、使用block时发生EXC_BAD的崩溃错误

 问题原因:从上图可以看出address = 0x0,block指向了一个空的地址
 解决办法:在调用block前先判断是否为空:


  • 14、cocoa pods更新1.0.0 以上版本后发生的错误:
Undefined symbols for architecture arm64:
"_OBJC_CLASS_$_JRNetWork", referenced from: xxxxx.0
ld: symbol(s) not found for architecture arm64

 问题原因:是由于旧版本的cocoapods第三方类库编译文件已存在,导致更新的类库无法编译,才造成arm64这个错误出现。
 解决办法:在工程目录中只需要在libPods-xxxx.a右键选择Show in Finder,将Products目录下文件全部清空,重新编译就好了。



  • 15、在定义全局变量时发生循环引用错误,如下:

 问题原因:现在在 .h 文件中直接定义如:NSString * const age = @"24";const NSString * age = @"24";会导致循环引用问题。
 解决方法:只在.h文件声明,在.m文件实现。如: <xxxxx.h>中 extern const NSString * name; <xxxxx.m>中 const NSString * name = @"jack";或者直接单独在.m中实现也可以。

  • 16、在设置静态变量时发生 static declaration of ‘name’ follows non-static declaration的错误。


 问题原因:静态声明“name" 遵循了非静态的声明(其实英文解释很明白了,无奈~英语水平只有二级半🙄)就是说你现在用的这个变量名字已经用过了,而且遵循的是非静态声明。
 解决办法:改变量名~~

  • 17、发生Sending 'xxxxViewController *const __strong' to parameter of incompatible type 'id<xxxxxxxDelegate>'的错误。

 问题原因:未遵循协议~~

  • 18、使用Application Loader上传.ipa安装包时发生ERROR ITMS-90717: “Invalid App Store Icon. The App Store Icon in the asset catalog in ‘*.app’ can’t be transparent nor contain an alpha channel.”
     问题原因:项目里添加了1024x1024的icon图标,但是图标存在alpha通道,需要将其去掉。
     解决办法:1、直接找UI换张图;2、先把PNG格式的图片导出成JPG,然后打开JPG格式图片,再次导出,导出成PNG。使用最后导出的PNG即可。

  • 19、使用Application Loader上传.ipa安装包时出现错误:An error occurred saving your changes to the Apple database. This problem may be a transient issue on the Apple side. If the problem persists for more than an hour, please contact your iTunes representative. (1016)意思是说:将更改保存到Apple数据库时发生错误。在苹果方面这个问题可能只是暂时的问题。如果问题持续超过一个小时,请联系iTunes代表。
     问题原因:可能是苹果服务器原因,,,
     解决办法:1、我是抱着试一试的态度就直接没有管这一错误,直接选择发送选项,继续走后面的上传流程,最后提示上传成功,经过十几分钟的忐忑之后在AppStore中刷新出来了上传的版本。

  • 20、使用pod install 时发生如下问题:

然后根据提示我在Build Settings -> Other Linker Flags 中添加 `$(inherited)`之后问题来了,运行发生如下错误:

 能够知到问题出在了那,因为能看出来:


但是不知道怎么解决~,解决方法:使用$(inherited) 而不是`$(inherited)`😢

  • 21、directory not found for option '-L / directory not found for option '-F

     问题原因:查询 Library的时候出现异常。/ 查询 Framework的时候出现异常。
     解决方法:依次 Project -> targets -> Build Setting -> Library Search Paths 删除里面的报错路径 / 依次 Project -> targets -> Build Setting -> Framework Search Paths 删除里面的报错路径

  • 22、 Undefined symbol: _OBJC_CLASS_$_JPUSHService

     需要导入JPUSHService依赖库,我这里是因为使用pods时添加了JPUSH加载项却没有执行 pod install操作。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 159,015评论 4 362
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,262评论 1 292
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 108,727评论 0 243
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 43,986评论 0 205
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,363评论 3 287
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,610评论 1 219
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,871评论 2 312
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,582评论 0 198
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,297评论 1 242
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,551评论 2 246
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,053评论 1 260
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,385评论 2 253
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,035评论 3 236
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,079评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,841评论 0 195
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,648评论 2 274
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,550评论 2 270

推荐阅读更多精彩内容