iOS 开发中的 inline 函数
前两天在开发的时候遇到这样一个问题:想在 OC 代码中实现一个全局变量,这个变量会根据设备类型取不同的值。代码如下: static CGFloat cardLeftMargin = isIPAD ? 30 : 16; // 这里的 isIPAD 是个宏 在 swift 中很容易就能实现这个全局变量。但是在 OC 里面,上面的代码编译时报错了, Initializer element is not a compile-time constant.在 OC 里面,全局变量在编译的时候得有个确定的值。解决这个问题有两个方法,一是用宏定义 #define,二是用inline内联函数。 先贴出来使用 inline 函数解决这个问题的方案: // .m file inline CGFloat cardLeftMargin() { return isIPAD ? 30 : 16; } // .h