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