Как использовать методы категорий Objective-C NSMeasurement в Swift?
Давайте предположим, что у нас есть категория на NSMeasurement
в нашем проекте.
Файл.h (файл.m также существует):
NSMeasurement+Test.h
@interface NSMeasurement (Test)
- (NSString *)foo;
@end
Теперь давайте предположим, что у нас есть класс Swift, в котором мы хотим использовать метод category foo
, Проблема здесь в том, что NSMeasurement
будет "преобразован" в класс Measurement в Swift. И да, заголовок категории был вставлен в заголовочный файл Brinding.
Вопрос в том, как я могу получить доступ к функции NSMeasurement "foo", хотя она была "мутирована" в класс Measurement в быстром
Любая помощь будет оценена.
1 ответ
Либо вы должны использовать NSMeasurement
или вы можете набрать приведение Measurement
в NSMeasurement
,
let measurement = Measurement(value: 20, unit: Unit(symbol: "kg")) as NSMeasurement
let value = measurement.foo()
print(value)
Согласно документации NSMeasurement
может быть соединен в Measurement
но на самом деле это разные вещи. NSMeasurement
это class
в то время как Measurement
это struct
,
Если это будет тот же класс, то это будет прямая реализация. Например: если вы создаете расширение UITableView
в Objective C
тогда вы можете напрямую получить доступ к методам расширения в Swift
,