开发时 团队出现的严重问题 放在这儿警戒

1

本地缓存的问题 迭代开发 本地缓存 存取类型发生变化 导致 升级后 客户升级 出现闪退情况

 [self.view endEditing:YES];

    NSLog(@"%@",self.mutableDictionary);

    {
        NSString *string = [self.mutableDictionary objectForKey:@"col_023"];
        if (![Tools isBlankString:string]) {
            if ([Tools isValidateChinese:string]) {
                self.model.col_023 = string;
            }else{
                [Tools myToast:@"托寄物请输入中文"];
                return;
            }

        }else{
            [Tools myToast:@"请填写托寄物"];
            return;
        }
    }

低版本 本地存取的是字符串 格式的数据 迭代升级版本时 本地存取的数据格式 更改为了数组 导致客服升级后 字符串数据 变成数组 处理时 解析数据 类型失败 出现闪退

迭代代码

- (void)loadOldDate{
    NSArray *arr = [[NSUserDefaults standardUserDefaults] objectForKey:@"col_023"];
    NSMutableArray *arrM = [NSMutableArray arrayWithArray:arr];
    self.historyArray = arrM;

迭代时 没有对以前本地缓存 做任何处理 造成失败 闪退

解决方法

1
取出数据 判断数据类型 是否 有错 在处理

NSUserDefaults *use = [NSUserDefaults standardUserDefaults];
    self.array = [NSMutableArray arrayWithArray:[use objectForKey:orderHistory]];
    for (NSInteger i = 0; i < self.array.count; i++) {
        if (![self.array[i] isKindOfClass:[NSDictionary class]]) {
            [self.array removeObjectAtIndex:i];
        }
    }

2
直接替换 Key值
借此提醒自己 和团队 以后 项目迭代开发 一定要进行迭代测试 切忌

2 compare 坑

#define kIOS7_OR_LATER ([[[UIDevice currentDevice] systemVersion] compare:@"7.0"] != NSOrderedAscending)
#define kIOS8_OR_LATER ([[[UIDevice currentDevice] systemVersion] compare:@"8.0"] != NSOrderedAscending)
#define KIOS9_OR_LATER ([[[UIDevice currentDevice] systemVersion] compare:@"9.0"] != NSOrderedAscending)

坑在这里

#define KIOS10_OR_LATER ([[[UIDevice currentDevice] systemVersion] compare:@"10.0"] != NSOrderedAscending)

切记 compare 比较字符窜的大小 是按照 ASCII 来比较的 这样的话
[@“8.0” compare @“10.0”] 就是8.0大了哦

这样就会导致 8.0的系统 有可能去执行 10.0的api 就会出现闪退的情况

结局的办法 转为浮点型

([[[UIDevice currentDevice] systemVersion] floatValue])
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值