Быстрое расширение: одинаковая функция расширения в двух модулях

Скажем, у меня есть Framework под названием SwiftKit, в котором есть метод класса расширения UIView с именем someClassMethod и свойство с именем someProperty внутри него:

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

    var someProperty: Double {
        print("someProperty from Swift Kit")
        return 0
    }
}

И у меня также есть Framework под названием SwiftFoundation, в котором также есть метод класса расширения UIView с именем someClassMethod и свойство с именем someProperty внутри него:

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

    var someProperty: Double {
        print("someProperty from Swift Foundation")
        return 0
    }
}

Затем я создал проект, который представил эти Frameworks, но если я импортирую их оба в один и тот же файл 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 view, typically from a nib.

        self.view.someProperty              // error: Ambiguous use of 'somProperty'
        SwiftKit.UIView.someClassMethod()   // error: Ambiguous use of 'someClassMethod()'
    }
}

Если я импортирую только один из них, неоднозначная ошибка исчезнет, ​​но произойдет более странная вещь:

import UIKit
import SwiftKit
//import SwiftFoundation

class ViewController: UIViewController {
    override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view, typically from a nib.

        self.view.someProperty
        SwiftKit.UIView.someClassMethod()
    }
}

На консоли распечатайте:

SomeProperty от Swift Foundation

someClassMethod от Swift Foundation

Мой вопрос: как я могу назвать эти расширения (оба метода класса / экземпляра, свойства) без неоднозначности? Если я не могу, значит ли это, что мы должны добавить префикс к именам расширений, как мы обычно делаем с Objective-C?

Ответы на вопрос(1)

Ваш ответ на вопрос