我们的产品是用目标C编写的,我们已经开始在swift中编写新功能。
这是我们的全球文件中写的东西 -
#define SPXFontHelveticaBold(SIZE) [UIFont fontWithName:@"Helvetica" size:SIZE]
我无法在我的快速课程中使用它。
答案 0 :(得分:5)
swift中没有宏,但您可以使用以下代码块实现相同的功能,该代码块返回UIFont
。
func SPXFontHelveticaBold (s:CGFloat) -> UIFont{
return UIFont (name: "Helvetica", size:s )
}
或者您可以定义一个Helper struct
,它具有以下功能。
struct Helper {
static func SPXFontHelveticaBold(s: CGFloat) -> UIFont {
return UIFont (name: "Helvetica", size:s )
}
let font = Helper.SPXFontHelveticaBold(14)
答案 1 :(得分:2)
Swift不支持宏。 Apple docs表示:
将简单宏声明为全局常量,并将复杂的宏转换为函数。
因此将其声明为全局函数,并使用与之前使用的相同方式。
func SPXFontHelveticaBold(size: CGFloat) -> UIFont {
return UIFont(name: "Helvetica", size: size)
}
答案 2 :(得分:0)
我用以下内容替换了我的pragma:
static inline UIFont* SPXFontHelveticaBold(CGFloat SIZE) {
return [UIFont fontWithName:@"Helvetica" size:SIZE];
}