关于写代码的习惯问题
2016-04-15 14:44
295 查看
本人小白一枚,但是平时就喜欢总结一些小经验,希望和大家一起探讨进步
现在总结了一些关于平时写代码的习惯问题,首先本人英语不太好,所以可能我写代码的风格会很奇怪,但是绝对适合那些英语不好又不知道怎么命名方法或者成员变量的人使用,哈哈
关于写代码的个人经验:
关于封装
封装是一个非常重要的方法,大大减少了代码的冗余,提高了效率,所以我经常将一些自己认为用的很多的方法封装到一个类中,然后把这个类作为自己的工具类,以后写工程直接拷贝就可以有很多方法了,现在我封装了方法有图片压缩,文字转拼音,网络请求(有时也直接用三方库,但是涉及到请求Key的时候还是自己的方便些),控件创建(属性太多,怕忘了,直接封装就好了),还有就是封装最好是类方法哦,这样就可以直接调用了,来几个例子吧:
这个是封装的按钮
+ (UIButton*)createBt:(CGRect)cg targ:(id)targ sel:(SEL)sel titColor:(UIColor*)titleColor font:(UIFont*)font image:(NSString*)imageName backGroundImage:(NSString*)backImage title:(NSString*)title{
UIButton * bt = [UIButton buttonWithType:UIButtonTypeCustom];
bt.frame = cg;
[bt setTitle:title forState:UIControlStateNormal];
[bt setTitleColor:titleColor forState:UIControlStateNormal];
[bt setImage:[UIImage imageNamed:imageName] forState:UIControlStateNormal];
[bt setBackgroundImage:[UIImage imageNamed:backImage] forState:UIControlStateNormal];
bt.titleLabel.font = font;
[bt addTarget:targ action:sel forControlEvents:UIControlEventTouchUpInside];
return bt ;
}
/**
* 带Key数据请求
*/
+ (void)dataWithCityURL:(NSString *)url andKeyStr:(NSString *)key andBlock:(MyBlock) dataBlock
{
NSMutableURLRequest *request = [[NSMutableURLRequest alloc]initWithURL: [NSURL URLWithString:url]];
[request setHTTPMethod: @"GET"];
[request addValue:key forHTTPHeaderField: @"apikey"];
NSURLSessionConfiguration *config = [NSURLSessionConfiguration defaultSessionConfiguration];
HTTPServiceRequest *http = [[HTTPServiceRequest alloc] init];
http.Block = dataBlock;//传递数据做准备
NSURLSession *session = [NSURLSession sessionWithConfiguration:config];
NSURLSessionTask *task = [session dataTaskWithRequest:request completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) {
if(http.Block)
{
http.Block(data,response,error);//传递数据
}
}];
[task resume];
}
额,好像占了太多篇幅没写到什么东西,下面写下怎么让代码出现中文提示吧,哈哈
这个是我在做高德地图时用它的demo发现的,原来可以这么玩,哈哈
如同这个方法,@brief是方法提示 @param是属性,(但是好像并不能显示)
/*!
@brief 将相对于view的坐标转化为经纬度坐标
@param point 要转化的坐标
@param view point所基于的view
return 转化后的经纬度坐标
*/
- (CLLocationCoordinate2D)convertPoint:(CGPoint)point toCoordinateFromView:(UIView *)view;
所以我一般将它写成这样,同样适用于成员变量哦
/*!
@brief 将相对于view的坐标转化为经纬度坐标
*/
只要在成员变量或者方法前写上这几行就可以在使用点语法或者调用方法时出现中文提示!
还有个不太好的习惯,就是由于英语不好,而代码又要规范,所以就导致一些英文命名的变量怎么也记不起来名字。。。结果我就想出一个方法,在每个成员变量的名字前面加上名字缩写和下划线,例如:DJ_ 这样记得开头,再配合中文提示,想忘记都难!
现在总结了一些关于平时写代码的习惯问题,首先本人英语不太好,所以可能我写代码的风格会很奇怪,但是绝对适合那些英语不好又不知道怎么命名方法或者成员变量的人使用,哈哈
关于写代码的个人经验:
关于封装
封装是一个非常重要的方法,大大减少了代码的冗余,提高了效率,所以我经常将一些自己认为用的很多的方法封装到一个类中,然后把这个类作为自己的工具类,以后写工程直接拷贝就可以有很多方法了,现在我封装了方法有图片压缩,文字转拼音,网络请求(有时也直接用三方库,但是涉及到请求Key的时候还是自己的方便些),控件创建(属性太多,怕忘了,直接封装就好了),还有就是封装最好是类方法哦,这样就可以直接调用了,来几个例子吧:
这个是封装的按钮
+ (UIButton*)createBt:(CGRect)cg targ:(id)targ sel:(SEL)sel titColor:(UIColor*)titleColor font:(UIFont*)font image:(NSString*)imageName backGroundImage:(NSString*)backImage title:(NSString*)title{
UIButton * bt = [UIButton buttonWithType:UIButtonTypeCustom];
bt.frame = cg;
[bt setTitle:title forState:UIControlStateNormal];
[bt setTitleColor:titleColor forState:UIControlStateNormal];
[bt setImage:[UIImage imageNamed:imageName] forState:UIControlStateNormal];
[bt setBackgroundImage:[UIImage imageNamed:backImage] forState:UIControlStateNormal];
bt.titleLabel.font = font;
[bt addTarget:targ action:sel forControlEvents:UIControlEventTouchUpInside];
return bt ;
}
/**
* 带Key数据请求
*/
+ (void)dataWithCityURL:(NSString *)url andKeyStr:(NSString *)key andBlock:(MyBlock) dataBlock
{
NSMutableURLRequest *request = [[NSMutableURLRequest alloc]initWithURL: [NSURL URLWithString:url]];
[request setHTTPMethod: @"GET"];
[request addValue:key forHTTPHeaderField: @"apikey"];
NSURLSessionConfiguration *config = [NSURLSessionConfiguration defaultSessionConfiguration];
HTTPServiceRequest *http = [[HTTPServiceRequest alloc] init];
http.Block = dataBlock;//传递数据做准备
NSURLSession *session = [NSURLSession sessionWithConfiguration:config];
NSURLSessionTask *task = [session dataTaskWithRequest:request completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) {
if(http.Block)
{
http.Block(data,response,error);//传递数据
}
}];
[task resume];
}
额,好像占了太多篇幅没写到什么东西,下面写下怎么让代码出现中文提示吧,哈哈
这个是我在做高德地图时用它的demo发现的,原来可以这么玩,哈哈
如同这个方法,@brief是方法提示 @param是属性,(但是好像并不能显示)
/*!
@brief 将相对于view的坐标转化为经纬度坐标
@param point 要转化的坐标
@param view point所基于的view
return 转化后的经纬度坐标
*/
- (CLLocationCoordinate2D)convertPoint:(CGPoint)point toCoordinateFromView:(UIView *)view;
所以我一般将它写成这样,同样适用于成员变量哦
/*!
@brief 将相对于view的坐标转化为经纬度坐标
*/
只要在成员变量或者方法前写上这几行就可以在使用点语法或者调用方法时出现中文提示!
还有个不太好的习惯,就是由于英语不好,而代码又要规范,所以就导致一些英文命名的变量怎么也记不起来名字。。。结果我就想出一个方法,在每个成员变量的名字前面加上名字缩写和下划线,例如:DJ_ 这样记得开头,再配合中文提示,想忘记都难!
相关文章推荐
- 教你如何解决XCODE升级后插件不能用问题
- 浅谈Xcode 开发工具 XCActionBar
- xcode 4 制作静态库图文详解
- 使用Xcode为iOS应用项目创建PCH文件的方法及应用示例
- 解决 Xcode 6-Beta2 智能提示bug
- 针对iOS开发的一些Xcode使用技巧小结
- Xcode中iOS应用开发的一般项目目录结构和流程简介
- XCode编译速度慢的处理方法
- mac git xcrun error active developer path 错误
- Xcode使用教程详细讲解(全)
- Cocos2d开发1:Xcode与TexturePacker的集成
- windows下objective-c的cocoa框架编程,可以有图形界面哟
- Xcode控制台命令
- 【卡片记忆】快速启动iOS模拟器
- OSX下Xcode更新后,Git提示确认证书
- 解决Xcode symbol not found问题
- Xcode5.0.2 资源更新问题
- Xcode7升级到Xcode8之后遇到文件冲突
- Objective-C(1) 认识一下吧
- Objective-C(13)代码块---block