【问题标题】:Why .pch file not available in swift?为什么 .pch 文件在 swift 中不可用?
【发布时间】:2014-09-26 14:33:33
【问题描述】:

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

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

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

【问题讨论】:

标签: swift


【解决方案1】:

即使在 Obj-C 中,也不应该将宏用于常量和表达式。以您的 cmets 为例:

#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 中情况是一样的——没有头文件和宏,所以也没有预编译的头文件。请改用扩展、全局常量或单例。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-03-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多