在Swift中,不提供Prefix.pch文件。在我的项目中,我想全局声明一些宏并在整个应用程序中使用。
请问有人可以给我建议如何做,应该在哪里声明?
是否有其他文件可以在Swift中替换Prefix.pch文件?
请问有人可以给我建议如何做,应该在哪里声明?
是否有其他文件可以在Swift中替换Prefix.pch文件?
即使在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中情况也是一样的 - 没有头文件和宏,因此也没有预编译头文件。请改用扩展、全局常量或单例。
#define NAVIGATIONBAR_COLOR @"5B79B1"
(2)#define ISIPAD [[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPad
(3)#define PROFILE_PIC [NSHomeDirectory()stringByAppendingPathComponent:@"Documents"]
在Swift中如何实现呢? - VRAwesomeNSFileManager
的-URLForDirectory:inDomain:appropriateForURL:create:error:
来获取像文档文件夹这样的“特殊”文件夹,你不应该假设它在主目录中。 - uliwitness