一些细节功能iOS开发文集iOS分享的demo

OC&swift中的宏定义

2016-07-08  本文已影响2133人  移动开发_ziank

在使用OC和swift进行混编时,我们经常会需要在swift中使用OC中的宏定义,但是这些宏定义经常会提示无法找到或者类型错误,那么我们到底应该怎么做才正确呢?

OC中的宏定义和C一样,主要有以下几种情况:


OC宏定义
  1. 定义一个常量值,后面可以方便使用;如 #define TOOLBAR_HEIGHT 44
  2. 定义一个不会变化的常用变量值,或者一个较长的对象属性;如#define SCREEN_WIDTH ([[UIScreen mainScreen] bounds].size.width)
  3. 定义一个会变化的常用变量值,或者一个较长的对象属性;如:#define STATUS_BAR_HEIGHT ([UIApplication sharedApplication].statusBarFrame.size.height)
  4. 定义一个带参数的宏,类似于一个函数;如#define RGB_COLOR(r,g,b) [UIColor colorWithRed:r/255.f green:g/255.f blue:b/255.f alpha:1.0]

对于这四种情况,在swift中只能处理第一种情况,而且是直接转换为了let TOOLBAR_HEIGHT = 44;那么由于使用TOOLBAR_HEIGTH的地方基本上都是使用CGFloat,而TOOLBAR_HEIGTH的类型却是Int,就会导致类型不匹配。

所以我们在混编时对于这些宏定义都需要单独处理:

swift宏定义处理
上一篇 下一篇

猜你喜欢

热点阅读