Я пытаюсь вызвать некоторый код в файле утилит, написанный на swift из файлаjective-c.
Сейчас класс в файле swift выглядит следующим образом:
class ImageClass: NSObject {
public func imageFromString(name: String?) -> UIImage? {
//code to make image
return image
}
}
Я пытаюсь вызвать его из файла Objective-C с:
UIImage *myImage = [ImageClass imageFromString:@"test"];
, однако это дает ошибку:
Use of undeclared identifier 'ImageClass'
Я знаю, что файл утилит доступен из Objective-C-файл, потому что я вызываю там другие методы, используя общий экземпляр.
Может кто-нибудь предложить правильный способ вызова кода?На самом деле мне все равно, класс это или через sharedInstance, мне просто нужно иметь возможность вызывать его.
Редактировать:
Как подсказывает @CharlesСрстка, я щелкнул CMD по файлу #import myapp.swift
, перешел к Definition, и в заголовке показывается следующее:
- (UIImage * _Nullable)imageFromStringWithName:(NSString * _Nullable)name SWIFT_WARN_UNUSED_RESULT;
Соответственно, я попытался добавить WithName (который я забыл) ввызов, поэтому у меня есть:
UIImage *myImage = [ImageClass imageFromStringWithName:@"test"];
, но я все еще получаю ошибку с или без @objc перед методом:
No known class method for selector 'imageFromStringWithName:'