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

2021-06-16  本文已影响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表,并将里面的数据删除。
上一篇下一篇

猜你喜欢

热点阅读