ios block 引发的小bug
同事反馈在使用应用的时候启动就闪退。纠结了半天,在我这里就没什么问题。
中午在模拟器上跑,整个公司没网就突然闪退了,嗯,猜的没错,是因为网络没有,然后请求http处理的时候有点问题,
1 [[SPHttpClient manager] GET:path 2 parameters:params 3 success:^(AFHTTPRequestOperation *operation, id responseObject) { 4 NSLog(@"%@",responseObject); 5 NSUserDefaults *userDefault = [NSUserDefaults standardUserDefaults]; 6 [userDefault setObject:responseObject[@"snum"] forKey:@"sendnumber"]; 7 if (block) 8 { 9 block(responseObject,nil); 10 } 11 } 12 failure:^(AFHTTPRequestOperation *operation, NSError *error) { 13 if (block) 14 { 15 block(nil,error); 16 } 17 NSUserDefaults *userDefault = [NSUserDefaults standardUserDefaults]; 18 [userDefault setObject:@"0" forKey:@"sendnumber"]; 19 }];
失败的时候block处理没有对block进行检测,按照我最初想得,Block肯定不会为null,后来同事调用觉得没有必要进行提示,就传入nil,
反省:
异常处理最开始就要加上,每一个要判断的地方都不能假设正确性。毕竟整个项目有时要很多人做。