韩元';Swift/iOS中跨模块/框架的t子类
在同一源文件中,此代码非常有效:韩元';Swift/iOS中跨模块/框架的t子类,ios,swift,Ios,Swift,在同一源文件中,此代码非常有效: class SuperClass { func sayHello() { print("Hello") } } class MyClass: SuperClass { } import MyFramework class MyClass: SuperClass { } 现在,我将“超类”类移动到“MyFramework”嵌入式框架中的另一个源文件中,并将访问控制设置为public: public class SuperClass {
class SuperClass {
func sayHello() {
print("Hello")
}
}
class MyClass: SuperClass {
}
import MyFramework
class MyClass: SuperClass {
}
现在,我将“超类”类移动到“MyFramework”嵌入式框架中的另一个源文件中,并将访问控制设置为public:
public class SuperClass {
public func sayHello() {
print("Hello")
}
}
应用程序源文件:
class SuperClass {
func sayHello() {
print("Hello")
}
}
class MyClass: SuperClass {
}
import MyFramework
class MyClass: SuperClass {
}
然而,我得到了一个“使用未声明的类型‘超类’”错误
必须识别“MyFramework”框架,因为导入语句不会导致错误(例如,我没有收到“无此类模块‘MyFramework’”错误)
如果我将应用程序源文件更改为:
import MyFramework
class MyClass: MyFramework.SuperClass {
}
…然后我得到一个“MyFramework”中没有名为“超类”的类型”
值得一提的是,MyFramework中的相关源文件确实选中了targetmembership部分中的框(对于MyFrameworkTests,而不是MyFrameworkTests)
MyFramework添加在“链接框架和库”部分
我尝试了一个干净的构建,也在一个新的空项目中尝试了上面的例子,但我遇到了同样的问题
如何跨模块/框架进行子类划分?您是否正在尝试创建一个用于其他用途的框架?对于Swift,我只使用一个公共结构,它可以在项目中的任何位置工作,或者我只使用classname().funcname(),不需要导入。你能解决这个问题吗?看到了同样的问题。也许改为公开?我也面临着这个问题,有什么解决办法吗?有什么帮助吗?