iOS 错误汇总 长期更新

对常见错误进行汇总,长期更新。

9.pod install 错误 M1电脑y

[NOTE]
You may have encountered a bug in the Ruby interpreter or extension libraries.
Bug reports are welcome.
For details: https://www.ruby-lang.org/bugreport.html

[IMPORTANT]
Don't forget to include the Crash Report log file under
DiagnosticReports directory in bug reports.

[1] 4669 abort pod install

解决方法:
安装最新版的homebrew
使用brew install cocoapods 安装cocoapods
再使用pod install 即可

8.xib 设置颜色不准

色域问题,按照下图设置即可,选择sRGB

颜色.png
7.传入值正常和接收值异常

调用某方法时,传入参数14 ,接受时打接收值是一个非常小的小数。
这是因为.h文件中的参数值写的是NSInteger 但是.m中写的是CGFloat , 发生了非标准的隐式转换,编译也没有警告声明不一致。往往出现于重构代码的时候。

6.调用addChildViewController报错

Terminating app due to uncaught exception 'UIViewControllerHierarchyInconsistency', reason: 'child view controller:XXXX should have parent view controller:(null) but actual parent is:XXXX'

错误的原因:
childVC的view所在的父视图不在parentViewControl的View上,同时先调用的addChildViewController,后调用addSubview。
解决方法:
先调用addSubview,再调用addChildViewController。若是在parentViewControl上的子视图,则先后顺序不影响。
问题分析:
添加视图后,系统会设置其响应者,如果先调用addChildViewController,系统会先去查找childVC的view的下一个响应者,然后设置为childVC。再调用addSubview则检测到view的下一个响应者 改变childVC的view的响应者为parentVC的view。再调用addSubview则系统检测到响应者为childVC,与其superView(本应该的下一个响应者)冲突,然后抛出错误。若是先addSubview则会先设置下一个响应者为superView,再调用addChildViewController的时候则修改其下一个响应者。(这是个人的猜想。不知道这是苹果的一个bug还是专门这样设计的。如有大神知道具体的原因请留言。)

5.storyboard使用注意

UIStoryboard *sb = [UIStoryboard storyboardWithName:@"Main" bundle:nil];
sb.instantiateInitialViewController每次都是一个新的对象,意思是sb只是代表着sb这个文件,此时还没有去初始化里面的类。当调用sb.instantiateInitialViewController的时候才是去初始化里面的类

4.push后页面右侧出现黑色阴影
先前写的程序大多使用UINavigationController---->UITabBarController----->push 的结构逻辑,可是自从ios7开始,当你push或pop的时候,发现导航栏右侧会有黑色阴影一闪而过。后来发现是透明导航栏捣的鬼。如果把导航栏设为不透明的就没有问题了!你看到的黑色阴影估计就是底层Controller的背景色。

   解决办法很简单,给window一个你想要的背景色即可。

参考http://stackoverflow.com/questions/30159565/ios7-8-translucent-navigationbar-top-right-corner-of-the-black 不是很对的方案

3.不提示访问网络权限引起app不能联网

app怎么自动弹不知道,手动方法是到设置里面把任意一个的app访问网络的权限关掉再打开,然后你启动你那个app就会弹出来了。

2.录音崩溃

This app has crashed because it attempted to access privacy-sensitive data without a usage description. The app's Info.plist must contain an NSMicrophoneUsageDescription key with a string value explaining to the user how the app uses this data.
原因:没有配置权限(模拟器则不报错,没有效果)

1.PCH文件添加

路径错误和编译错误
第一步:创建PCH文件
第二步:Build Settings 搜索prefix header
第三步:Precomplie Prefix Header 设置为YES
第四步:Prefix Header 填写地址$(SRCROOT)/XXX项目名/8.其他-Others/IntellectualProperty-Prefix.pch
此文件地址可以通过cmd获得,把文件拖入cmd即可看到地址

你可能感兴趣的:(iOS 错误汇总 长期更新)