1、在iOS开发过程中,最常用到的比如UILabel、UIbutton...... 我们可以写一个公共类方法,在这个方法中设置好基本属性,当每次用的时候,就可以一句话调用,只做少量的代码添加就可以了。
//UIButton
+(UIButton *)publicCreatButtonWithTitleTextFontSize:(CGFloat)textFontSize roundSize:(CGFloat)roundSize backGroundColor:(UIColor *)backGroundColor{
UIButton *button = [[UIButton alloc]init];
button.layer.cornerRadius = roundSize;
button.clipsToBounds = YES;
button.titleLabel.font = [UIFont systemFontOfSize:textFontSize];
button.backgroundColor = backGroundColor;
return button;
}
2、网络请求的方法,一定要封装在一起,因为网络请求具有极强的公共属性,很多地方都会调用网络请求类GET、POST、DELETE、PUT等,提取相同属性封装起来。
//GET请求
+(id)GETURLSplice:(NSString *)urlSplice Parameters:(NSString *)parameters HTTPHeaderKey:(NSArray *)httpHeaderKey HTTPHeaderValue:(NSArray *)httpHeaderValue
completionHandler:(void (^)(id responseObjectmodel ,NSError *error ,NSString *statusCode ,NSString *status ,NSString *code ,NSString *message))completionHandler{
NSString *url = [self urlParameters:parameters urlSplice:urlSplice];
AFHTTPSessionManager *manager = [AFHTTPSessionManager manager];
//设置返回数据的格式
manager.responseSerializer = [AFHTTPResponseSerializer serializer];
//请求头
NSString *strq= [NSString stringWithFormat:@"%@%@%.0f%@%@",@"GET",url,[[NSDate date] timeIntervalSince1970],@"0",App_Secret];
[manager.requestSerializer setValue:[self sha1:strq] forHTTPHeaderField:@"sign"];
[manager.requestSerializer setValue:user_Token forHTTPHeaderField:@"access-token"];
NSString *str=[url stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
return [manager GET:str parameters:nil progress:nil success:^(NSURLSessionDataTask * _Nonnull task, id _Nullable responseObject) {
completionHandler(resultModel,nil,nil,nil,nil,nil);
} failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) {
completionHandler(nil,error,statusCode,erromodel.status,erromodel.code,erromodel.message);
}];
}
3、代码文件结构要分明,文件层次有很多方法,因人而异,因项目而异,因各种状况而异,下面我把我的文件分法展示出来(我的文件有中文,显得很low,但是自己看的时候查找内容很方便)。