我制作了一个 swift 框架,其中还包括 Objective-C 类。
在我的测试应用程序(一个单独的项目)中,如果我将构建目标设置为“Generic iOS Device
”,我可以访问 swift 类并进行项目编译,不会出现任何问题。
如果我将目标设置为任何模拟器
,框架中的所有 .Swift 类在代码中都不可见,也无法访问,并且我得到“使用未声明的类型
”,而 Obj-C 类可以访问。
使用 XCode 7.2
提前致谢。
编辑: 难道是因为of this STO Answer?
最佳答案
我已经使用Alamofire(swift框架)来尝试你的情况,它可以在swift上工作,但不能在objective-c上工作。首先,在“build设置”中,“搜索启用模块”中,我们无法使用 swift 框架而不是 Objective-c 和 C 来更改模块。另一方面,我找不到任何可以在 Objective-c 中使用的方法,例如函数、变量。它可以知道 AlamofireVersionNumber 和 AlamofireVersionString。可能是其他(swift框架)在objective-c中支持有限(该类必须是NSObject的继承)。 https://developer.apple.com/library/ios/documentation/Swift/Conceptual/BuildingCocoaApps/MixandMatch.html#//apple_ref/doc/uid/TP40014216-CH10-ID136
该网站表示可以使用 Swift 中定义的泛型、元组、不带 Int 原始值类型的枚举、Swift 中定义的结构体、Swift 中定义的顶级函数、Swift 中定义的全局变量、Swift 中定义的类型别名、Swift -style 变量、嵌套类型、objective-c 的柯里化(Currying)函数,尽管该类应该继承 NSObject。您不能在 Objective-C 中子类化 Swift 类。
关于xcode - swift 框架,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34672229/