您的位置:首页 > 其它

预定义,条件编译,数组

2012-10-10 23:39 267 查看
1. 预定义:#define

在object-c中,跟C语言一样都是采用#define才使用,但末尾是没有分号的;

例子:

#define PI 3.14

在之后即可引用。

2. 条件编译:#ifdef,#end,#elseif
#ifdef,#else,#endif如我们常识认为的那样,程序会根据判断条件处理或者忽略某一个程序段。

例子:
#ifdef MAC_OS_X
# define DATADIR “/uxnl/data”
#else
# define DATADIR “\usr\data”
#endif

3. 数组
在object-c中,C语言的数组格式初始化和引用都能够用,但在object-c中不提倡使用。

#define isRetina CGSizeEqualToSize(CGSizeMake(640, 960), [[UIScreen mainScreen] currentMode].size)

上边这个不严密,在iOS3.2之前的设备上会造成Crash,用下边这个:

#define isRetina ([UIScreen instancesRespondToSelector:@selector(currentMode)] ? CGSizeEqualToSize(CGSizeMake(640, 960), [[UIScreen mainScreen] currentMode].size) : NO)

// 是否高清屏

#define isRetina ([UIScreen instancesRespondToSelector:@selector(currentMode)] ? CGSizeEqualToSize(CGSizeMake(640, 960), [[UIScreen mainScreen] currentMode].size) : NO)

// 是否iPad

#define isPad (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad)

// 是否模拟器

#define isSimulator (NSNotFound != [[[UIDevice currentDevice] model] rangeOfString:@"Simulator"].location)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: