我在UIImage
上有一个用Objective-C编写的类别。以下是一些示例方法。如何在Swift中调用这些方法?
+(UIImage *) imageOrPDFNamed:(NSString *)resourceName;
+(UIImage *) imageWithPDFNamed:(NSString *)resourceName;
我尝试过以下操作但它无法识别方法:
let image = UIImage(imageOrPDFNamed:"test.pdf")
let image = UIImage(PDFNamed:"test.pdf")
答案 0 :(得分:13)
类别函数和调用约定有各种各样的情况。
1)在swift
类中,如果类别中的函数返回与它们相同的类型
convenience initializes
+(UIImage *) imageOrPDFNamed:(NSString *)resourceName ;
所以它可以被称为
UIImage(orPDFNamed: "abc")
2)但是,如果类别中的类函数没有返回它在这种情况下调用的相同对象类型(UIImage
)UIImage
,如
+(int) imageOrPDFNamedInt:(NSString *)resourceName ;
它将被称为
UIImage.imageOrPDFNamedInt("abc")
3)如果categories函数不是类函数,那么它将直接调用UIImage
的实例,如
-(UIImage *) imagePDFNamed:(NSString *)resourceName ;
称为
UIImage().imagePDFNamed("abc")
答案 1 :(得分:1)
这最终起作用了:
let image = UIImage(orPDFNamed:"test.pdf")