假设我们项目中的NSMeasurement
有一个类别。
.h文件(.m文件也存在):
NSMeasurement+Test.h
@interface NSMeasurement (Test)
- (NSString *)foo;
@end
现在让我们进一步假设我们有一个Swift类,我们想要使用类别方法foo
。这里的问题是NSMeasurement
将被“转换”为Swift中的Measuement类。
是的,类别标题已插入到Brinding头文件中。
问题是:我如何访问NSMeasurement func“foo”,尽管它已经“突变”为swift中的Measurement类
任何帮助都将不胜感激。
答案 0 :(得分:2)
您必须使用NSMeasurement
,或者您可以将投注Measurement
输入NSMeasurement
。
let measurement = Measurement(value: 20, unit: Unit(symbol: "kg")) as NSMeasurement
let value = measurement.foo()
print(value)
根据Documentation NSMeasurement
可以桥接到Measurement
,但事实上它们是分开的。 NSMeasurement
是class
,而Measurement
是struct
。
如果它是同一个类,则它是直接实现。
例如:如果您在UITableView
中创建Objective C
的扩展名,则可以直接在Swift
中访问扩展程序。