【移动应用开发技术】iOS开发常用的宏_第1页
【移动应用开发技术】iOS开发常用的宏_第2页
【移动应用开发技术】iOS开发常用的宏_第3页
【移动应用开发技术】iOS开发常用的宏_第4页
【移动应用开发技术】iOS开发常用的宏_第5页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

【移动应用开发技术】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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论