无法发出预编译 header 因为循环条件

Failed to emit precompiled header because Loop condition

假设我有 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 Class 中的 FooClass.h(假设栏SwiftClass)

public class BarSwiftClass {
     public hello() -> BazSwiftClass {
          return FooClass().bazMethod()
     } 
}

我的 swift 文件中需要 FooClass.h,所以我在 MyProject-Bridging.h

中添加了 FooClass
#import "FooClass.h"

所以 Flow 就像 BarSwiftClass -> FooClass -> BazSwiftClass

它无法工作,因为编译器显示 "failed to emit precompiled header" 我认为这是因为 MyProejct-Bridging.h

中的 #import "FooClass.h"

请帮忙。

谢谢。

替换您的代码

#import "MyProject-Swift.h"
@interface FooClass : NSObject {
     - (BazSwiftClass)bazMethod;
}

@class BazSwiftClass
@interface FooClass : NSObject {
     - (BazSwiftClass)bazMethod;
}

并且在 FooClass.m 文件中您可以导入 #import "MyProject-Swift.h"