ios - 方法 'fontWithName(_:size:)' 与 Objective-C 选择器冲突

标签 ios xcode swift uifont

我正在尝试为 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)!
    }
}

见图片 *enter image description here*

最佳答案

此方法名称未达成一致,因为 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/

相关文章:

ios - UIViewController 隐藏在 UINavigationController 后面,但应该放在下面

ios - 垂直空间约束奇怪的行为

ios - Xcode 可以对按钮格式差异负责吗?

ios - UINavigationController 有哪些导航替代方案?

ios - iPhone GPS 用户位置在手机静止时来回移动

ios - 没有 Storyboard 的 UIViewController 状态恢复不起作用

ios - 为什么 XCode 和 instruments 内存使用之间存在巨大差异,这可以吗?

xcode - 你如何在 Xcode 中打开颜色选择器?

ios - Firebase 不适用于真实设备 (iOS)

swift - NSSavePannel - 如何限制用户只能保存一组目录?