一尘不染

为什么.pch文件无法迅速使用?

swift

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

谁能给我建议怎么做,在哪里申报?

快速还有其他文件替换为Prefix.pch文件吗?


阅读 206

收藏
2020-07-07

共1个答案

一尘不染

即使在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中,情况是一样的-没有标头,也没有宏,因此也没有预编译的标头。请改用扩展名,全局常量或单例。

2020-07-07