我说我有Swift和Objc类,以及MyProject-Bridging.h
BazSwiftClass.swift
df.show()
+-----+-------+--------------------+----------------+--------+
|BG__c|company| createdAt| email| id|
+-----+-------+--------------------+----------------+--------+
| ABC| MCS|2016-10-25T14:04:15Z|email@domain.com| 4|
| CDE| MSC|2018-03-28T16:41:06Z|email@domain.com|10850879|
+-----+-------+--------------------+----------------+--------+
df.write.format('parquet').save(parquet_path_in_hdfs)
FooClass.h
public class BazSwiftClass: NSObject {
public let foo: String
@objc init(foo: String) {
self.foo = foo
}
}
我想访问另一个Swift类中的#import "MyProject-Swift.h"
@interface FooClass : NSObject {
- (BazSwiftClass)bazMethod;
}
(让我们说BarSwiftClass)
FooClass.h
我的swift文件中需要FooClass.h,所以我在MyProject-Bridging.h中添加了FooClass
public class BarSwiftClass {
public hello() -> BazSwiftClass {
return FooClass().bazMethod()
}
}
所以Flow就像 BarSwiftClass - > FooClass - > BazSwiftClass
它无法正常工作,因为编译器显示"未能发出预编译的报头"我认为这是因为MyProejct-Bridging.h中的#import "FooClass.h"
请帮忙。
谢谢。
答案 0 :(得分:4)
替换您的代码
#import "MyProject-Swift.h"
@interface FooClass : NSObject {
- (BazSwiftClass)bazMethod;
}
使用
@class BazSwiftClass
@interface FooClass : NSObject {
- (BazSwiftClass)bazMethod;
}
并在 FooClass.m 文件中,您可以导入 #import“MyProject-Swift.h”