Forward声明一个Swift类在Objective-C头中使用它

时间:2017-12-30 05:44:40

标签: objective-c swift types objective-c-swift-bridge

我正在尝试将Swift类导入Objective-C头文件。我知道Project-Swift.h桥只能导入到实现文件(.m)中,但我有一个Objective-C头,需要声明一个在Swift中定义的属性。

我在某处读到这可以通过在头文件中声明类并将Project-Swift.h导入实现文件来完成。当我这样做时,错误得到解决,但我无法访问任何类属性。

示例:

// Square.swift

@objc class Square: NSObject {
  var width: Int?
  var height: Int?
}

// Shapes.h

@class Square;

@interface Shapes: NSObject {
  @property(nonatomic, strong) Square *square;
}

// Shapes.m

#import "Shapes.h"
#import "Product-Swift.h"

@implementation Shape

@end

// Somewhere else in the code

Shapes *shapes = [Shapes new];
NSLog(@"%@", @(shapes.square.width)); <-- Property 'width' not found on object of type 'Square *'

任何人都可以提供有关如何访问Swift类及其属性的建议吗?

0 个答案:

没有答案