【发布时间】:2019-02-03 19:27:18
【问题描述】:
我正在尝试从objective-c 文件中调用以swift 编写的实用程序文件中的一些代码。
现在 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'
我知道 Utilities 文件可以从 Objective-C 文件中访问,因为我使用共享实例调用了那里的其他方法。
谁能建议调用代码的正确方法?我实际上不在乎它是一个类还是通过一个 sharedInstance,我只需要能够调用它。
编辑:
根据@Charles Srstka 的建议,我 CMD 单击了#import myapp.swift 文件,跳转到定义,它在标题中显示以下内容:
- (UIImage * _Nullable)imageFromStringWithName:(NSString * _Nullable)name SWIFT_WARN_UNUSED_RESULT;
因此,我尝试将 WithName(我忘记了)添加到调用中,所以我有:
UIImage *myImage = [ImageClass imageFromStringWithName:@"test"];
但在方法之前使用或不使用@objc 时仍然会出错:
No known class method for selector 'imageFromStringWithName:'
【问题讨论】:
标签: ios objective-c swift class