我正在尝试为 UIFont
创建一个扩展。但显示错误如下所述
Method 'fontWithName(_:size:)' with Objective-C selector 'fontWithName:size:' conflicts with previous declaration with the same Objective-C selector
扩展类代码:
import UIKit
import Foundation
extension UIFont {
class func fontWithName(fontName: String, size fontSize: CGFloat) -> UIFont {
return UIFont(name: fontName, size: fontSize + 5)!
}
}
最佳答案
此方法名称未达成一致,因为 UIFont
类中已经存在一个 init
方法。
// Returns a font using CSS name matching semantics.
public /*not inherited*/ init?(name fontName: String, size fontSize: CGFloat)
现在,Swift 解析你的方法并发现它类似于 UIFont
中默认的 init
方法。
// Returns a font using CSS name matching semantics.
+ (nullable UIFont *)fontWithName:(NSString *)fontName size:(CGFloat)fontSize;
尝试更改您的方法名称而不失去其目的(名称说明目的。)您将使您的方法正常工作。
例子:
func fontName(fontName: String, size fontSize: CGFloat) -> UIFont {
return UIFont(name: fontName, size: fontSize + 5)!
}
关于ios - 方法 'fontWithName(_:size:)' 与 Objective-C 选择器冲突,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35934053/