在swift中,未提供Prefix.pch文件。在我的项目中,我想全局声明一些宏并在整个应用程序中使用。
任何人都可以给我建议如何做,在哪里宣布?
swift中是否有其他文件被Prefix.pch文件替换?
答案 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中,情况是一样的 - 没有头文件,也没有宏,因此也没有预编译头。改为使用扩展,全局常量或单例。