【发布时间】:2018-11-21 13:09:16
【问题描述】:
假设我有 Swift 和 Objc 类,还有一个 MyProject-Bridging.h
BazSwiftClass.swift
public class BazSwiftClass: NSObject {
public let foo: String
@objc init(foo: String) {
self.foo = foo
}
}
FooClass.h
#import "MyProject-Swift.h"
@interface FooClass : NSObject {
- (BazSwiftClass)bazMethod;
}
我想在另一个 Swift 类中访问 FooClass.h(比如说 BarSwiftClass)
public class BarSwiftClass {
public hello() -> BazSwiftClass {
return FooClass().bazMethod()
}
}
我的 swift 文件中需要 FooClass.h,所以我在 MyProject-Bridging.h 中添加了 FooClass
#import "FooClass.h"
所以 Flow 就像 BarSwiftClass -> FooClass -> BazSwiftClass
它无法工作,因为编译器显示“未能发出预编译头”,我认为这是因为 MyProejct-Bridging.h 中的#import "FooClass.h"
请帮忙。
谢谢。
【问题讨论】:
-
您只需要在桥接头中导入 .h 文件而不是 .m 文件,因此请删除对 .m 文件的引用,清理并重建
-
我只在 .h 文件中导入,但它仍然导致错误。我编辑我的问题以避免混淆。
-
你检查过这个链接了吗@JeffersonSetiawan stackoverflow.com/questions/46293028/…
-
是的,我从那个链接知道问题(我使用桥接,在 MyProject-bridging 中,我也导入了那个 objc 文件),但我想知道我可以继续使用这种方法吗?跨度>
-
查看答案
标签: ios swift xcode bridging-header objc-bridging-header