Ios Swift-具有不同方法名称但仍不工作的多个扩展
我有两个框架项目(A和B),在这两个框架中我都有一个UIViewController扩展Ios Swift-具有不同方法名称但仍不工作的多个扩展,ios,swift,xcode,Ios,Swift,Xcode,我有两个框架项目(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实例上还是在视图上调用这些方法?名称表明它们的预期用途不明确。
现在我的现有类抛出错误,loadFromNib不可用
是框架B中的类吗?请显示一些代码。首先,框架a中的loadFromNib
的定义@JeremyP用一些代码更新了帖子。@Anilvarge是的,它们仍然存在于框架B中。因为我没有权限修改它们。也更新了我的帖子。当我使用myView.loadFromNib()时,您是否在源文件顶部引用了loadFromNib
从框架B中,我得到错误类型myView没有成员“loadFromNib”。这是框架B中的现有代码,并且很早就开始工作。在我将新扩展添加到框架后,我看到此消息A@Tamil我看到loadFromNib
是UIVIewController的扩展。myView.loadFromNib()
此时将不起作用。请检查是否调用视图或控制器对象