美文网首页
iOS Bug收录(小编亲测好使)

iOS Bug收录(小编亲测好使)

作者: 最强的小强 | 来源:发表于2021-06-16 17:57 被阅读0次

    目录:

    1. PodFile文件问题?
    2. Xcode运行出现Permission denied的解决方案?
    3. for in 循环边遍历边修改报错?
    4. TZImagePickerController卡顿问题?
    5. 在绘制某些UI时,标签的上方有一条灰线,精度问题?
    6. 使用UIAlertViewController时弹窗延迟,点两次才好使?
    7. 报错 property follows cocoa naming convention for returning 'owned' objects
      属性不能以关键字符开头?
    8. iOS使用CornerStone时程序被锁?

    一、问题:warning: The iOS deployment target is set to 7.0, but the range of supported deployment target versions for this platform is 9.0 to 12.0. (in target 'Bugly')

    解决方案:将下述内容添加在PodFile的最下方,重新执行pod install,下次就不会报⚠️了

    post_install do |installer|
        installer.pods_project.targets.each do |target|
            target.build_configurations.each do |config|
                config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'] = '9.0'
            end
        end
    end
    
    

    NOTE:注意修改版本号与你的 platform :ios, '9.0'一致

    二、 Xcode运行出现Permission denied的解决方案

    原因:小编是在XCode版本进行升级的时候,出现的这个权限问题Permission denied
    遇到错误的截图:

    图1_Permission denied
    解决方案:打开终端,输入命令:
    chmod -R 777 /Users/pcname/XXX(Xcode工程所在空间)
    三、 解决bug Terminating app due to uncaught exception ‘NSGenericException’, reason: ‘Collection <__NSArrayM: 0xb550c30> was mutated while being enumerated.

    意思是当你使用for in一边遍历数组,又同时修改这个数组里面的内容,导致崩溃,在iOS中是不允许这么做的
    解决方案:

       // 方案1: 新创建一个可变数组
        NSMutableArray *array = [NSMutableArray arrayWithObjects:@"123",@"456", nil];
        NSMutableArray *temp = [NSMutableArray arrayWithCapacity:16];
        for (NSString *str in array) {
            if ([str isEqualToString:@"123"]){
                [temp addObject:str];
            }
        }
        NSLog(@"temp-%@",temp);
        // 方案2:使用 for 循环
        for (int i = 0;i < array.count; i++) {
            if (i == 1) {
                array[i] = @"444";
            }
        }
        NSLog(@"array-%@",array);
    
    四、 使用 TZImagePickerController调用相机拍照时,点击使用图片,会有2-3秒的卡顿

    解决方案:控制台显示UI未在主线程进行渲染,所以造成了卡顿,原因是TZImagePickerController 在方法configTableView中使用dispatch_async(dispatch_get_global_queue(0, 0), ^{});导致的,改为主线程dispatch_async(dispatch_get_main_queue)刷新UI就可以了

    五、在绘制某些UI时,标签的上方有一条灰线

    解决方案:原因是某些标签的高度通过计算获取的,如果是小数的话,就可能出现上述问题,使用ceil函数进行向上取整就可以了

    // 知识回顾:
    round  如果参数是小数  则求本身的四舍五入.
    ceil   如果参数是小数  则求最小的整数但不小于本身.
    floor  如果参数是小数  则求最大的整数但不大于本身.
    Example:
    round(3.4)  --- 3   ceil(3.4) --- 4   floor(3.4) --- 3
    round(3.5)  --- 4   ceil(3.5) --- 4    floor(3.5) --- 3
    CGFloat tempNum = 5.234;
    tempNum *= 100;
    NSLog(@"%.2f", ceil(tempNum)/100);  //打印的为5.24
    
    六、使用UIAlertViewController时弹窗延迟,点两次才好使?

    解决方案:present放入主线程

    七、报错 property follows cocoa naming convention for returning 'owned' objects

    通过查看后得知,属性不能以关键字符开头。不能以allocnewcopymutableCopy 等等关键字作为开头命名,小细节没注意就会犯错⚠️⚠️⚠️

    // 错误举例
    @property (nonatomic, copy) NSString *newMediaType; 
    

    解决方案: 属性不能以关键字符开头命名

    // 正确举例
    @property (nonatomic, copy) NSString *mediaType; 
    
    八、 其他问题:使用CornerStone时程序被锁?

    其实这只是SVN的一个保护机制,在意外中断以后,会将其锁住。
    解决方案:

    1. 打开显示隐藏文件,进入对应svn目录下的.svn文件夹,并找到wc.db文件( 快捷键 Cmd+Shift+. );
    2. Navicat Premium或相关的可以数据库工具打开这个wc.db文件;
    3. 找到WC_LOCK表,并将里面的数据删除。

    相关文章

      网友评论

          本文标题:iOS Bug收录(小编亲测好使)

          本文链接:https://www.haomeiwen.com/subject/vhjzvctx.html