韩元';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(),不需要导入。你能解决这个问题吗?看到了同样的问题。也许改为公开?我也面临着这个问题,有什么解决办法吗?有什么帮助吗?