繁体   English   中英

Swift-具有不同方法名称的多个扩展名,但仍无法正常工作

[英]Swift - multiple extension with different method name but still not working

我有两个框架项目(A和B),并且在两个框架中都有UIViewController扩展。

  1. 我在框架B中的扩展具有方法“ loadFromNib”
  2. 在框架“ B”中,我有访问“ loadFromNib”的类
  3. 在框架“ B”中,我也指框架“ A”
  4. 现在,我已将UIViewController扩展添加到框架“ A”,但名称为“ loadViewFromNib”。

现在,我现有的类抛出错误,提示loadFromNib不可用,建议我访问loadViewFromNib方法。 我在这里想念的是什么。 为什么我的课没有提到正确的扩展名

//Code from Framework B
extension UIViewController
{
    public class func loadFromNib() -> Self?
    {
        return loadNibFilePrivateMethod()
    }
    ....
}

//Code from Framework A
extension UIViewController
{
    public class func loadViewFromNib() -> Self?
    {
        return loadNibFilePrivateMethod()
    }
    ....
}

我正在将通用代码从多个其他框架(由其他团队拥有)合并到框架A中,并且无法在任何其他框架中进行任何修改。 因此,我希望代码可以共存而不破坏任何内容。

现在我现有的类抛出错误,提示loadFromNib不可用

可能是因为您试图从声明它的框架外部使用loadFromNib (这就是错误消息...不可用的意思)

当您希望方法/类型/函数可用于其他模块(例如框架,目标)时,您需要将它们声明为public

因此,要解决您的问题,请声明您的方法

public func loadFromNib(...

并且很可能会提供。

更新

您是在ViewController实例上还是在视图上调用方法? 这个名字暗示了他们期望做什么。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM