我有两个框架项目(A和B),并且在两个框架中都有UIViewController扩展。
我在框架B中的扩展具有方法“ loadFromNib”
在框架“ B”中,我有访问“ loadFromNib”的类
在框架“ B”中,我也指框架“ A”
现在,我已将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实例上还是在视图上调用方法?这个名字暗示了他们期望做什么。