扒虫篇-Bug日志Ⅳ

2017-07-10  本文已影响0人  進无尽

</br>

1. Undefined symbols for architecture arm64:

解决办法:设置 Enable Testability即可

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

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

3.不在主线程语句更新UI,会很晚才有提示,有的直接崩溃

[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格式,图片属性“有无交错”被误设置为有了等等。

解决方案基本如下:

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

  • Build Settings
6.超出A部分的点击没有反应

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

7. for -in 循环中的报错
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.

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.模拟器运行报错

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>

上一篇下一篇

猜你喜欢

热点阅读