使用Swift实现Objective C库中的方法

时间:2016-05-09 21:49:07

标签: ios objective-c swift flir

我正在尝试在swift中实现以下方法:

来自FLIROneSDKImageReceiverDelegate类,它是我的ViewController类中的子类,如下所示:

class ViewController: UIViewController, FLIROneSDKImageReceiverDelegate,
    FLIROneSDKStreamManagerDelegate,
                        FLIROneSDKImageEditorDelegate{

请注意,我已经创建了一个桥接标头等。

在FLIROneSDKImageReceiverDelegate头文件中:

- (void) FLIROneSDKDelegateManager:(FLIROneSDKDelegateManager *)delegateManager didReceiveBlendedMSXRGBA8888Image:(NSData *)msxImage imageSize:(CGSize)size;

我认为这是实现此功能的正确方法我错了吗?

func FLIROneSDKDelegateManagerdidReceiveBlendedMSXRGBA8888ImageimageSize(delegateManager: FLIROneSDKDelegateManager!, msxImage: NSData, size: CGSize){

请注意,FLIROneSDKDelegateManager是一个类。

2 个答案:

答案 0 :(得分:1)

离开我的头顶,但试试这个:

func FLIROneSDKDelegateManager(delegateManager: FLIROneSDKDelegateManager!, didReceiveBlendedMSXRGBA8888Image msxImage: NSData!, imageSize size: CGSize) {

    // method imp

}

答案 1 :(得分:0)

@ Laxsnor在@ aaron-wojnowski对答案的评论中的解决方案也帮助了我,感谢两者。

合并:

问题是由名称FLIROneSDKDelegateManager创建的冲突被用作类名和函数名 - 在Objective-C中似乎没问题,但在Swift中没有。

在函数参数中用FLIROneSDKDelegateManager替换类NSObject似乎解决了没有副作用的问题。这必须在Objective-C协议头文件和Swift委托类源文件中完成。

注意我还发现同样的解决方案更广泛地适用于https://github.com/jruhym/flirmebaby的整个FLIROneSDK的Swift- ify

快速开发FLIROne on Swift。 (我是FLIROne的新手,对Swift来说相对较新,如果我的语言不够精确,我会道歉。)