前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >扒虫篇-Bug日志Ⅳ

扒虫篇-Bug日志Ⅳ

作者头像
進无尽
发布2018-09-12 18:17:08
6350
发布2018-09-12 18:17:08
举报
文章被收录于专栏:進无尽的文章進无尽的文章

</br>

1. Undefined symbols for architecture arm64:

解决办法:设置 Enable Testability即可

2. 莫名其面的 duplicate symbol XXXXX in :

解决办法:other linker flag -ObjC 造成的,有些时候设置other linker flag 为-ObjC会出现多次导入的报错。

3.不在主线程语句更新UI,会很晚才有提示,有的直接崩溃
代码语言:javascript
复制
[MBProgressHUD showHUD];
dispatch_queue_t queue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0);
dispatch_async(queue, ^{
    //网络判断
    if (![Reachability networkAvailable]) {
          如果下面这句(回到主线程)不加上,会有问题
         dispatch_async(dispatch_get_main_queue(), ^{
             [MBProgressHUD hideHUD];
             [[MethodTool shareTool]ShowMessage:@"网络异常"];
             return;
         });
       
    }
4.编译时找不到系统的string 文件

这是由于 OC和C++汇编时,.m没有改为 .mm 而搜索不到C++文件造成的Bug。 .m 文件中 #import 的所有 文件会依次检查自己导入的头文件是否存在,如果在 test.m中 #import 了testB.h 而 testB.h 中又用到了 C++文件就会出现这个问题。层层引用文件都会再编译时展开,所以#import 不要乱用,否则会加重编译时的任务量

即可

5. 打包时LaunchImage-800-Portrait-736h@3x.png pngcrush caught libpng error: 报错

意思就是读取启动 Plus图片失败,应该是识别不出来,此时项目是可以正常启动的。

原因: 图片不是真的PNG格式,图片属性“有无交错”被误设置为有了等等。

解决方案基本如下:

  • UI设计师让其重新生成,
  • 删除原来的
  • Clean 一下(可以避免很多未知Bug),
  • 再次导入新的文件,(名称最好改为@3x) 3.5 inch screen: LaunchImage-700@2x.png 4.0 inch screen: LaunchImage-700-568h@2x.png 4.7 inch screen: LaunchImage-800-667h@2x.png 5.5 inch screen: LaunchImage-800-Portrait-736h@3x.png iPad2 : LaunchImage-700-Portrait~ipad.png Retina iPads : LaunchImage-700-Portrait@2x~ipad.png

************更新**********

  • Build Settings
  • Packaging
  • Compress PNG Files 改成NO 即可解决这个问题 所谓的Compress PNG Files并不是像字面意思那样为了压缩减少图片的大小,而是为了加快应用运行时的速度。Compress PNG Files实际上是将图片像素的颜色信息,转换成iPhone能够更快渲染的格式。
6.超出A部分的点击没有反应

因为超出了父视图的显示区域。

7. for -in 循环中的报错
代码语言:javascript
复制
for (NSString *str  in jcrangeArray) {
      if ([str isEqualToString:checkModel.jcfsid]) {
          [jcrangeArray removeObject:str];
        }
    }

NSGenericException :Collection <__NSArrayM: 0x17065b240> was mutated while being enumerated.

You can't modify the array while looping through it with the for...in... control statement.

  • You cannot delete items from a NSMutableArray while iterating it.

There are several solutions to this:

1. Iterate a copy of the array 2. Use an index-based for loop instead of the for each syntax. Not copying the array saves you an allocation and a few CPU cycles:

8.真机报错

明明没有锁屏啊,这....... 解决办法:拔掉手机重新连接到电脑上。

9.模拟器运行报错

I had to close xcode and delete derived data. Just delete this folder

~/Library/Developer/Xcode/DerivedData/

退出 Xcode,清除DerivedData数据。

10.模拟器运行报错
代码语言:javascript
复制
Undefined symbols for architecture i386:
"OBJCCLASS_$_JPUSHRegisterEntity", referenced from:
objc-class-ref in ZFHNotificationManager.o
"OBJCCLASS_$_JPUSHService", referenced from:
objc-class-ref in ZFHNotificationManager.o
ld: symbol(s) not found for architecture i386
clang: error: linker command failed with exit code 1 (use -v to see invocation)

解决办法: 极光推送SDK 从3.0.0版本开始不再支持i386模拟器,在升级文档中有说明 选择6、6s、7,及这些的plus的模拟器 这些不属于处理器为i386的模拟器 iPAD模拟器也要注意选择 非 i386 的模拟器 </br>

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2017.07.10 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1. Undefined symbols for architecture arm64:
  • 2. 莫名其面的 duplicate symbol XXXXX in :
  • 3.不在主线程语句更新UI,会很晚才有提示,有的直接崩溃
  • 4.编译时找不到系统的string 文件
  • 5. 打包时LaunchImage-800-Portrait-736h@3x.png pngcrush caught libpng error: 报错
    • 6.超出A部分的点击没有反应
      • 7. for -in 循环中的报错
      • 8.真机报错
      • 9.模拟器运行报错
      • 10.模拟器运行报错
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档