为什么.pch文件在swift中不可用?

时间:2014-08-04 06:59:27

标签: swift

在swift中,未提供Prefix.pch文件。在我的项目中,我想全局声明一些宏并在整个应用程序中使用。

任何人都可以给我建议如何做,在哪里宣布?

swift中是否有其他文件被Prefix.pch文件替换?

1 个答案:

答案 0 :(得分:32)

即使在Obj-C中,使用宏来表示常量和表达式也是你不应该做的事情。以您的评论为例:

#define NAVIGATIONBAR_COLOR @"5B79B1"

作为UIColor上的类别方法会更好,例如

+ (UIColor *) navigationBarColor {
    return [UIColor colorWith...];
}

isPad宏应该是普通函数

BOOL isIPad() {
    return ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPad);
}

或类别方法,例如在UIDevice

[UIDevice isIPad]

定义为

+ (BOOL)isIPad {
   return ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPad);
}

预编译的标头从未打算与所有代码共享宏。他们在那里包含框架头以加速编译过程。随着去年引入模块,现在可以创建自定义模块,您不再需要预编译的头文件。

在Swift中,情况是一样的 - 没有头文件,也没有宏,因此也没有预编译头。改为使用扩展,全局常量或单例。