开发笔记(报错问题总结) 您所在的位置:网站首页 jqueryminjs运行报错 开发笔记(报错问题总结)

开发笔记(报错问题总结)

2023-03-18 22:23| 来源: 网络整理| 查看: 265

目录

1.Apple Mach-O Linker Error错误 2.因为“类型修饰错误”造成很难查找的天坑 3.注意内存缓存问题 4.问题场景:九宫格hud问题 5.因为hud的问题造成的巨坑 6.循环引用的问题这样理解 7.“OBJC_CLASS$_UToPassenger” refernced from 8.有时候程序报错,但是点击红点跳不到解释错的页面,则可以如下操作 9.打印iphone设备闪退日志 10.每次做断点调试的时候,怎么打印出当前请求的接口及参数的完整链接 11.用NSLog输出如下解析信息 12.iOS开发中遇到BAD_ACCESS怎么办 13.模拟器报错 14.高版本Xcode创建的项目,用低版本打开,报xib等错误 15.程序闪退的方法栈 16.项目运行手机报错 17.xcode will continue when iPhone is finished iPhone is busy:Processing symbol files 18.AvoidCrash防闪退处理 19.iOS开发之Xib错误排除 20.Xcode报错(自定义颜色类) 21.iOS14系统的bug,cell无法点击 22.控制台打印出请求接口的参数、url、结果 23.Xcode控制台po打印不出值 24.运行出现:[__NSPlaceholderDictionary initWithObjects:forKeys:count:]: attempt to insert nil object 25.删除列表某行数据时出现: reason: -[__NSArrayM objectAtIndexedSubscript:]: index 4 beyond bounds [0 .. 3]' 26.WKWebview的dealloc方法闪退 27.如何处理target has frameworks with conflicting names: xx.framework错误 28.po [XXDMTouchPlayManager _shortMethodDescription] 29.po与p区别 30.App闪退链接到钉钉打印出日志(未整理) 31.工程中有重复文件报错 32.iOS一些方便调试的代码方式 33.常见低级错误 34.因为定义的全局变量一样而报的错,不容易查找 35.iOS 闪退 crash 大解析

1.Apple Mach-O Linker Error错误 2.因为“类型修饰错误”造成很难查找的天坑

比如:NSIndex不能assign来修饰,在iphone5及系统在10.0以下会有问题。注意要用strong!!! 同样问题:在消息中心封装的segementView中颜色是对象类型用strong,而不是用assign;造成了内存泄漏(不一定在什么时候就会发生,导致奔溃)!导致问题:测试环境不会有问题,不奔溃,线上环境程序奔溃。 带*号的都是对象,注意具体有些用copy...什么的

正确修饰:@property (nonatomic, strong) NSIndexPath *currIndexPath; 用assign导致奔溃如图 3.注意内存缓存问题

比如切换工程分枝的时候出现问题:分享APP时,微信朋友圈文字未显示完整,就是因为缓存问题;解决:clean一下工程即可!

4.问题场景:九宫格hud问题

九宫格:扫码拼车时,选择乘车联系人时多次后,程序奔溃!打全局断点,也不走。这时可以通过图1这个来查找之前奔溃所记录的;从中看出:Terminated due to memory issue 是内存的原因;然后一边操作一边查看内存的增长情况,测试可以看到内存一直暴涨,没有减;查看代码是因为每次更换人数的时候都要请求价格数据,而请求价格数据时肯定都要转菊花,这时内存就疯涨,而没有释放的原因就是菊花相关的hud没有设置代理,导致每次加载数据转菊花时没有释放内存!!!加上代理即可,要注意此类问题的解决办法:重点是精确定位到“问题的原因,解决过程和方法”

图1 5.因为hud的问题造成的巨坑

问题1:删除联系人页面,删掉第一个人正常,在再删除一个人之后全部联系人都删除了,跳出界面再进来发现实际没有删掉,原因是方法[weakSelf.hud hideAnimated:NO]; 没有隐藏,所以出了问题;解决方法就是hideAnimated:NO

问题2:司机端强制300问题,开始行程后杀死app,然后再进入界面此时会强跳两次界面,因为mjRefresher问题还是hud问题,以后类似的要注意

6.循环引用的问题这样理解

比如在main函数中创建了两个类的对象A和B,现在引用计数都是1。现在让A和B互相引用(A有一个属性是B对象,属性说明是retain;B有一个属性是A对象,属性说明是retain),现在两个对象的引用计数都增加了1,都变成了2。现在执行[A release]; [B release]; 此时创建对象的main函数已经释放了自己对对象的所有权,但是此时A和B的引用计数都还是1,因为他们互相引用了。这时你发现A和B将无法释放,因为要想释放A必须先释放B,在B的dealloc方法中再释放A。同理,要想释放B必须先释放A,在A的dealloc方法中再释放B。所以这两个对象将一直存在在内存中而不释放。这就是所谓的循环引用的问题。要想解决这个问题,一般的方法可以将引用的属性设置为assign,而不是retain来处理。

7.“OBJC_CLASS$_UToPassenger” refernced from

问题解决方法:http://blog.csdn.net/azhou_hui/article/details/18312047

8.有时候程序报错,但是点击红点跳不到解释错的页面,则可以如下操作 9.打印iphone设备闪退日志

Window --- Devices --- 选中iphone --- 点击View Device Logs ,可看到图二就是各种日志...

10.每次做断点调试的时候,怎么打印出当前请求的接口及参数的完整链接 11.用NSLog输出如下解析信息

出现这种原因是打断点调试的时候用的po输出的,字面意思就是返回了空的对象,如果要避免这种情况,用NSLog输出要测试的字符串就行了

12.iOS开发中遇到BAD_ACCESS怎么办

https://www.jianshu.com/p/51188549ff06

13.模拟器报错 14.高版本Xcode创建的项目,用低版本打开,报xib等错误 15.程序闪退的方法栈

如图,这些是闪退之前走过的方法;有时候闪退到了汇编代码里面就可以通过这个方法找到错误的地方

16.项目运行手机报错

项目运行一个新的手机(之前未跑过也未添加过该设备)报如下错误,可以更换Bundle Identifier尝试

17.xcode will continue when iPhone is finished iPhone is busy:Processing symbol files

真机测试的时候会报这个提示:xcode will continue when iPhone is finished iPhone is busy:Processing symbol files,原因和解决方法如下图

18.AvoidCrash防闪退处理

这个框架利用runtime技术对一些常用并且容易导致崩溃的方法进行处理,可以有效的防止崩溃;并且打印出具体是哪个方法会导致闪退,让你快速定位导致闪退的代码。 添加方法:pod 'AvoidCrash', '2.5.2' 相关github链接:https://github.com/chenfanfang/AvoidCrash

19.iOS开发之Xib错误排除

https://www.jianshu.com/p/023b6714b9c8

20.Xcode报错(自定义颜色类) 导入 21. iOS14系统的bug,cell无法点击

因为在iOS14系统下,UITableViewCell添加控件必须添加到它的contentView,直接添加无法点击,上面会有一层遮住。xib画的不影响,xib画的控件就是添加到contentView。 https://www.jianshu.com/p/a01b7aa558e7 解决: UITableViewCell:[self addSubView:]替换成[self.contentView addSubView:];

22.控制台打印出请求接口的参数、url、结果

宏定义为:#define DLog(...) printf("%s [Line %d] %s\n\n", PRETTY_FUNCTION, LINE, [[NSString stringWithFormat:VA_ARGS] UTF8String]) 实用例子:DLog(@"%@",paramsDict);、DLog(@"%@",responseObject);

23.Xcode控制台po打印不出值 打印不出的问题 解决的办法 24.运行出现:[__NSPlaceholderDictionary initWithObjects:forKeys:count:]: attempt to insert nil object

https://blog.csdn.net/xiaoning0905/article/details/89306924

25.删除列表某行数据时出现: reason: -[__NSArrayM objectAtIndexedSubscript:]: index 4 beyond bounds [0 .. 3]'

https://blog.csdn.net/yuhao309/article/details/81382655

26.WKWebview的dealloc方法闪退 奔溃信息翻译 解决办法 27.如何处理target has frameworks with conflicting names: xx.framework错误

https://www.jianshu.com/p/a142d6bee8bf

28.po [XXDMTouchPlayManager _shortMethodDescription]

po [XXDMTouchPlayManager _shortMethodDescription],这个方法可以打印一些第三库的具体没有暴露的实现方法,比如打印高德地图某个类里面的具体m文件的所有方法,可以找到获取实时当前位置距离终点的剩余距离和时间的信息。这个po方法是属于runtime方法。XXDMTouchPlayManager这个替换成自己想要看的那个类。

29.po与p区别

p 是 expression — 的别名,p 为 print 的简写,同时可以写为 pri 打印某个东西,可以i是变量和表达式; call 为调用某个方法,输出变量也是可以的。po 一般用于打印对象,是 expression -O — 的别名。p 和 po 的区别在于使用 po 只会输出对应的值,而 p 则会返回值的类型以及命令结果的引用名。 相关链接:https://juejin.cn/post/6869621360415637518

例子:AFN请求数据success后的回调,response里面是一个数组dateArray,数组里面存的是字典。想要拿到返回的id,直接 dict[@"id"] 在控制台用po打印得到87,确实是一个正常的数字,感觉没问题。用p命令打印后是 -5432343234 明显不正确,因为dict[@"id"] 得到的是一个对象而不是NSIntger类型的,需要 [dict[@"id"] integerValue] 之后才是基本的数据类型。

AFN请求数据, success后的回调,response, 里面是一个数组dateArray, 数组里面存的是字典 返回的数据结构 30.App闪退链接到钉钉打印出日志(未整理) 闪退日志钉钉.png 31.工程中有重复文件报错 重复文件 重复文件 32.iOS一些方便调试的代码方式

1.判断里面加个NO让他不走这,不用去注释代码

if判断里面加个NO让他不走这,不用去注释代码

2.h、m和xib等文件是否加入编译

正常情况下默认都加入编译

不加入编译不报错

3.暴力调试:用 NSLog 输出方式

用 NSLog 输出方式,Xcode 调速器断点,调试区的按钮如下:从左往右数功能分别为:

第一个:打开/关闭调试器窗口 第二个:蓝色表示打的断点有效;灰色表示断点无效 第三个:继续按钮;点击之后程序会继续执行,直到遇到下一个断点结束或者闪退 第四个:跳过按钮;点击他会执行一行代码,然后程序的控制权又交还给你(相当于点一下执行一行) 第五个:跳入按钮;如果程序里有当前光标所在函数或者方法的源代码,那么xcode将会跳入那个方法,显示代码 第六个:跳出按钮;单击它会终止当前运行的函数,并且程序会停在调用函数那行的下一行代码,控制权又回到你手中

33.常见低级错误

1.数组初始化 array 写成 alloc 2.没有创建对象就对对象做事,比如绑定协议绑在创建表格视图之前 3.驼峰标识法使用,大小写不区分 4.处理地图里用可视化放了一个分段按钮,再添加一个事件,但其无法显示在视图上,被地图遮住;解决办法:给分段控件绑定一个插座变量(如_segementController),再强制放到视图上(方法如下[self.view bringSubviewToFront:_segementController]; )类似问题同法处理。

34.因为定义的全局变量一样而报的错,不容易查找 35.iOS 闪退 crash 大解析

https://www.jianshu.com/p/1b804426d212



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有