Вперед объявите класс Swift, чтобы использовать его в заголовке Objective-C

Я пытаюсь импортировать класс 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 и его свойствам?


person Shlomi Nissan    schedule 30.12.2017    source источник
comment
Пожалуйста, перейдите по этой ссылке, она будет работать определенно импортировать быстрый код в цель c"> stackoverflow.com/questions/24102104/   -  person Sumit singh    schedule 30.12.2017
comment
Этот ответ не распространяется на проблему предварительного объявления.   -  person silvansky    schedule 22.06.2019