让我说我有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"

所以流程就像 BarSwiftClass-> FooClass-> BazSwiftClass

它不起作用,因为编译器显示“无法发出预编译头文件”,我认为这是由于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”

10-08 16:26