小编guo*_*ubo的帖子

Swift扩展:两个模块中的相同扩展功能

假设我有一个名为SwiftKit的框架,它有一个名为someClassMethod的UIView扩展类方法和一个名为someProperty的属性:

// SwiftKit
public extension UIView {
    class func someClassMethod() {
        print("someClassMethod from Swift Kit")
    }

    var someProperty: Double {
        print("someProperty from Swift Kit")
        return 0
    }
}
Run Code Online (Sandbox Code Playgroud)

我还有一个名为SwiftFoundation的框架,它还有一个名为someClassMethod的UIView扩展类方法和一个名为someProperty的属性:

// SwiftFoundation
public extension UIView {
    class func someClassMethod() {
        print("someClassMethod from Swift Foundation")
    }

    var someProperty: Double {
        print("someProperty from Swift Foundation")
        return 0
    }
}
Run Code Online (Sandbox Code Playgroud)

然后我创建了一个项目介绍这些框架,事情是,如果我在同一个swift文件中导入它们并访问这些扩展,我得到了"不明确使用someProperty/someClassMethod()"错误,即使我指定了调用SwiftKit.UIView.someClassMethod()的形式:

import UIKit
import SwiftKit
import SwiftFoundation

class ViewController: UIViewController {
    override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the …
Run Code Online (Sandbox Code Playgroud)

namespaces swift swift-extensions

24
推荐指数
1
解决办法
4664
查看次数

标签 统计

namespaces ×1

swift ×1

swift-extensions ×1