IOS开发实战Bug收集集锦(持续更新。。。)
1.崩溃信息如下:
Collection <__NSSetM: 0x146d47df0> was mutated while being enumerated.
在遍历set时,对set做了操作(删除或修改),发生崩溃。
修复办法:
[aMutableSet enumerateObjectsUsingBlock:^(id _Nonnull obj, BOOL * _Nonnull stop) { if (满足条件) { *stop = YES; [aMutableSet removeObject:obj]; } }];
2.发布app时,报如下错误:
Xcode 7 error: “Missing iOS Distribution signing identity for …”
解决办法如下:
1.Download https://developer.apple.com/certificationauthority/AppleWWDRCA.cer2.Double-click to install to Keychain.3.Then in Keychain, Select View -> "Show Expired Certificates" in Keychain app.4.It will list all the expired certifcates.5.Delete "Apple Worldwide Developer Relations Certificate Authority certificates" from "login" tab6.And also delete it from "System" tab.
这样就好了。
参考:
http://stackoverflow.com/questions/32821189/xcode-7-error-missing-ios-distribution-signing-identity-for
3.web页面调用相册或相机
报错如下:
Warning: Attempt to present <UIImagePickerController: 0x12734be00> on <MBTabBarVC: 0x1270fc000> whose view is not in the window hierarchy!
解决办法:在自定义的tab页面中重载下面方法。
-(void)dismissViewControllerAnimated:(BOOL)flag completion:(void (^)(void))completion{ if ( self.presentedViewController) { [super dismissViewControllerAnimated:flag completion:completion]; }}
// 将系统提供的获取崩溃信息函数写在这个方法中,以保证在程序开始运行就具有获取崩溃信息的功能 - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { // 将下面C函数的函数地址当做参数 NSSetUncaughtExceptionHandler(&UncaughtExceptionHandler); return YES; } // 设置一个C函数,用来接收崩溃信息 void UncaughtExceptionHandler(NSException *exception){ // 可以通过exception对象获取一些崩溃信息,我们就是通过这些崩溃信息来进行解析的,例如下面的symbols数组就是我们的崩溃堆栈。 NSArray *symbols = [exception callStackSymbols]; NSString *reason = [exception reason]; NSString *name = [exception name]; } //代码调用第2种方法:获取崩溃统计的函数指针 NSUncaughtExceptionHandler *handler = NSGetUncaughtExceptionHandler();
1、循环利用cell的ID设置位置写错了。导致程序奔溃。
2、对于除数算法,可以直接算出结果的就写上结果,不要偷懒写式子让计算机自己算,更何况是除数,会有算出无限小数的可能性。
3、更改连线好的属性名,别忘了重新连线,否则会出现容易看不出来的bug




出现的问题:
解决方式是将出现的bug信息Assertion failure in -[UIApplication _runWithMainScene....这前面部分拷贝到Google搜索引擎一搜索就有:
7、关于bitcode的问题:
8、关于声明和创建const属性,出现的bug,这个bug类型是前面介绍的第5个bug
我将下面的两段代码,为了能够让两个类单独内部使用,把下面的代码抽离出来,分别放在不同的类的前面,结果造成前面第5个讲的bug,重复定义了。
评论