




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
【移动应用开发技术】iOS开发常用的宏
作为一名开发人员,在开发过程中如果将常用的代码收集起来,添加到Xcode的代码片库里,通过快捷键直接使用,从而提高开发效率;或者封装为宏或封装在一个类中,可提高代码的复用性。1)将常用代码片段封装成一个类里
当一个代码片在一个或多个工程之中经常出现时,把他封装在一个类里面,在使用时候直接传参即可实现对应功能,或者直接把这个类放到另一个工程中同样使用。#defineNavigationBar_HEIGHT44
#defineSCREEN_WIDTH([UIScreenmainScreen].bounds.size.width)
#defineSCREEN_HEIGHT([UIScreenmainScreen].bounds.size.height)
#defineSAFE_RELEASE(x)[xrelease];x=nil
#defineIOS_VERSION[[[UIDevicecurrentDevice]systemVersion]floatValue]
#defineCurrentSystemVersion([[UIDevicecurrentDevice]systemVersion])
#defineCurrentLanguage([[NSLocalepreferredLanguages]objectAtIndex:0])
#defineBACKGROUND_COLOR[UIColorcolorWithRed:242.0/255.0green:236.0/255.0blue:231.0/255.0alpha:1.0]
//usedlogtoprintwhileindebugmodel
#ifdefDEBUG
#defineDLog(fmt,...)NSLog((@"%s[Line%d]"fmt),__PRETTY_FUNCTION__,__LINE__,##__VA_ARGS__);
#else
#defineDLog(...)
#endif
#defineisRetina([UIScreeninstancesRespondToSelector:@selector(currentMode)]?CGSizeEqualToSize(CGSizeMake(640,960),[[UIScreenmainScreen]currentMode].size):NO)
#defineiPhone5([UIScreeninstancesRespondToSelector:@selector(currentMode)]?CGSizeEqualToSize(CGSizeMake(640,1136),[[UIScreenmainScreen]currentMode].size):NO)
#defineisPad(UI_USER_INTERFACE_IDIOM()==UIUserInterfaceIdiomPad)
#ifTARGET_OS_IPHONE
//iPhoneDevice
#endif
#ifTARGET_IPHONE_SIMULATOR
//iPhoneSimulator
#endif
//ARC
#if__has_feature(objc_arc)
//compilingwithARC
#else
//compilingwithoutARC
#endif
//G-C-D
#defineBACK(block)dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT,0),block)
#defineMAIN(block)dispatch_async(dispatch_get_main_queue(),block)
#defineUSER_DEFAULT[NSUserDefaultsstandardUserDefaults]
#defineImageNamed(_pointer)[UIImagep_w_picpathNamed:[UIUtilp_w_picpathName:_pointer]]
#pragmamark-commonfunctions
#defineRELEASE_SAFELY(__POINTER){[__POINTERrelease];__POINTER=nil;}
#pragmamark-degrees/radianfunctions
#definedegreesToRadian(x)(M_PI*(x)/180.0)
#defineradianToDegrees(radian)(radian*180.0)/(M_PI)
#pragmamark-colorfunctions
#defineRGBCOLOR(r,g,b)[UIColorcolorWithRed:(r)/255.0fgreen:(g)/255.0fblue:(b)/255.0falpha:1]
#defineRGBACOLOR(r,g,b,a)[UIColorcolorWithRed:(r)/255.0fgreen:(g)/255.0fblue:(b)/255.0falpha:(a)]
#defineITTDEBUG
#defineITTLOGLEVEL_INFO10
#defineITTLOGLEVEL_WARNING3
#defineITTLOGLEVEL_ERROR1
#ifndefITTMAXLOGLEVEL
#ifdefDEBUG
#defineITTMAXLOGLEVELITTLOGLEVEL_INFO
#else
#defineITTMAXLOGLEVELITTLOGLEVEL_ERROR
#endif
#endif
//Thegeneralpurposelogger.Thisignoreslogginglevels.
#ifdefITTDEBUG
#defineITTDPRINT(xx,...)NSLog(@"%s(%d):"xx,__PRETTY_FUNCTION__,__LINE__,##__VA_ARGS__)
#else
#defineITTDPRINT(xx,...)((void)0)
#endif
//Printsthecurrentmethod'sname.
#defineITTDPRINTMETHODNAME()ITTDPRINT(@"%s",__PRETTY_FUNCTION__)
//Log-levelbasedloggingmacros.
#ifITTLOGLEVEL_ERROR<=ITTMAXLOGLEVEL
#defineITTDERROR(xx,...)ITTDPRINT(xx,##__VA_ARGS__)
#else
#defineITTDERROR(xx,...)((void)0)
#endif
#ifITTLOGLEVEL_WARNING<=ITTMAXLOGLEVEL
#defineITTDWARNING(xx,...)ITTDPRINT(xx,##__VA_ARGS__)
#else
#defineITTDWARNING(xx,...)((void)0)
#endif
#ifITTLOGLEVEL_INFO<=ITTMAXLOGLEVEL
#defineITTDINFO(xx,...)ITTDPRINT(xx,##__VA_ARGS__)
#else
#defineITTDINFO(xx,...)((void)0)
#endif
#ifdefITTDEBUG
#defineITTDCONDITIONLOG(condition,xx,...){if((condition)){\
ITTDPRINT(xx,##__VA_ARGS__);\
}\
}((void)0)
#else
#defineITTDCONDITIONLOG(condition,xx,...)((void)0)
#endif
#defineITTAssert(condition,...)\
do{\
if(!(condition)){\
[[NSAssertionHandlercurrentHandler]\
handleFailureInFunction:[NSStringstringWithUTF8String:__PRETTY_FUNCTION__]\
file:[NSStringstringWithUTF8String:__FILE__]\
lineNumber:__LINE__\
description:__VA_ARGS__];\
}\
}while(0)
会员:鸡累基类鸡肋
#defineLOADIMAGE(file,ext)[UIImagep_w_picpathWithContentsOfFile:[[NSBundlemainBundle]pathForResource:fileofType:ext]]
读取本地图片的和p_w_picpathNamed一样,但是性能比后者要强很多,两个参数,前面一个是文件名,后面一个是类型
例如p_w_picpathView.p_w_picpath=LOADIMAGE(@"文件名",@"png");
会员:anglepro
#defineWIDTH[[UIScreenmainScreen]bounds].size.width
#defineHEIGHT[[UIScreenmainScreen]bounds].size.height
会员:l20061642
#defineVIEWWITHTAG(_OBJECT,_TAG)[_OBJECTviewWithTag:_TAG]
会员:pri_est
#defineMyLocal(x,...)NSLocalizedString(x,nil)
这样就不需要填默认的参数了.对于需要反复使用的方法比较方便。
比如说MyLocal(@"0094")代替了NSLocalizedString(@"0094",nil)
会员:oopp
引用第1楼鸡累基类鸡肋于2013-03-2614:58发表的:
#defineLOADIMAGE(file,ext)[UIImagep_w_picpathWithContentsOfFile:[[NSBundlemainBundle]pathForResource:fileofType:ext]]
读取本地图片的和p_w_picpathNamed一样,但是性能比后者要强很多,两个参数,前面一个是文件名,后面一个是类型
例如p_w_picpathView.p_w_picpath=LOADIMAGE(@"文件名",@"png");
在资源不吃紧的情况下,这种反而是个累赘,因为没有缓存.
p_w_picpathnamed只是说要缓存,而且无法手动清空而已.缓存是好是坏,只能自己判定.
会员:beyondvincent
//rgb颜色转换(16进制->10进制)
#defineUIColorFromRGB(rgbValue)[UIColorcolorWithRed:((float)((rgbValue&0xFF0000)>>16))/255.0green:((float)((rgbValue&0xFF00)>>8))/255.0blue:((float)(rgbValue&0xFF))/255.0alpha:1.0]
[2013.6.9更新]
会员:favormm检查系统版本
我也来一个我用过的,检查系统版本的
1.
2.#defineSYSTEM_VERSION_EQUAL_TO(v)([[[UIDevicecurrentDevice]systemVersion]compare:voptions:NSNumericSearch]==NSOrderedSame)
3.#defineSYSTEM_VERSION_GREATER_THAN(v)([[[UIDevicecurrentDevice]systemVersion]compare:voptions:NSNumericSearch]==NSOrderedDescending)
4.#defineSYSTEM_VERSION_GREATER_THAN_OR_EQUAL_TO(v)([[[UIDevicecurrentDevice]systemVersion]compare:voptions:NSNumericSearch]!=NSOrderedAscending)
5.#defineSYSTEM_VERSION_LESS_THAN(v)([[[UIDevicecurrentDevice]systemVersion]compare:voptions:NSNumericSearch]==NSOrderedAscending)
6.#defineSYSTEM_VERSION_LESS_THAN_OR_EQUAL_TO(v)([[[UIDevicecurrentDevice]systemVersion]compare:voptions:NSNumericSearch]!=NSOrderedDescending)
会员:linux_fay
//清除背景色
#defineCLEARCOLOR[UIColorclearColor]
//定义UIImage对象
#defineIMAGE(A)[UIImagep_w_picpathWithContentsOfFile:[[NSBundlemainBundle]pathForResource:AofType:nil]]
//带有RGBA的颜色设置
#defineCOLOR(R,G,B,A)[UIColorcolorWithRed:R/255.0green:G/255.0blue:B/255.0alpha:A]
//方正黑体简体字体定义
#defineFONT(F)[UIFontfontWithName:@"FZHTJW--GB1-0"size:F]
//安全删除对象
#defineSAFE_DELETE(P)if(P){[Prelease],P=nil;}
//接口API
#defineAPIURL@"http://xxxxx/"
//登录
#defineAPILogin[APIURLstringByAppendingString:@"Login"]//登录API
会员:tmxk12388
//获取RGB颜色
#defineRGBA(r,g,b,a)[UIColorcolorWithRed:r/255.0fgreen:g/255.0fblue:b/255.0falpha:a]
#defineRGB(r,g,b)RGBA(r,g,b,1.0f)
会员:legnaflow
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025有关办公室租赁合同
- 2025重型机械租赁合同范文
- 2025上海写字楼租赁合同范本
- 2025商务住宅买卖合同模板
- 2025办公室租赁合同标准范本
- 2025实验中学安全岗位承包合同
- 2025合同签署的授权委托书
- 2025年《企业试用合同协议》范本
- 2025年付里叶红外分光光度计合作协议书
- 防水投标施工方案
- 2025年第三届天扬杯建筑业财税知识竞赛题库附答案(201-300题)
- T-NKFA 015-2024 中小学午休课桌椅
- 课题开题报告:推进家校社协同育人研究
- 拒绝校园霸凌守护美好校园
- 不要慌太阳下山有月光二部合唱简谱
- 2025春新七年级道德与法治下册全册知识点
- Unit 9 Active learning 教学设计-2023-2024学年高中英语北师大版(2019)必修第三册
- 渔场基地建设实施方案
- 《食源性病原体》课件
- 《药品泡罩包装应用指南(征求意见稿)》
- Unit 6 Beautiful landscapes Integration 说课稿 -2024-2025学年译林版英语七年级下册001
评论
0/150
提交评论