Swift(iOS)插件 - 插件错误中未定义的方法 - Cordova

Flá*_*eal 7 plugins objective-c ios cordova swift

我正在重写从Objective-C到Swift的应用程序中的所有插件.这些插件由Cordova调用.所有插件在Objective-C中都能正常工作.

但是当我尝试使用swift版本插件运行应用程序时,我得到以下错误.

错误:方法'getMAC2:'未在插件'MACPlugin2'中定义

我在重写到Swift的任何插件的所有方法中都会出现此错误.

看看这个插件代码示例:

import Foundation

@objc(MACPlugin2)
class MACPlugin2 : CDVPlugin {

    func getMAC2(command : CDVInvokedUrlCommand){

        print("########## ENTER MACPLUGIN 2 ###########")

    }


}
Run Code Online (Sandbox Code Playgroud)

有人知道发生了什么?

最好,

弗拉维奥

Mat*_*sen 9

添加_参数之前对我来说还不够.我也必须@objc(test:)在方法之前添加一个.

@objc(test:)
func test(_ command: CDVInvokedUrlCommand) {
    // whatever
}
Run Code Online (Sandbox Code Playgroud)


oss*_*cpp 5

我的例子如下,没有_它没有工作!注意:此解决方案是Swift 3的修复程序

@objc(LibCDVP) class LibCDVP : CDVPlugin {
    func echo(_ command: CDVInvokedUrlCommand) {

        print("method call OK!")

        let msg = command.arguments[0] as? String ?? ""

        let pluginResult = CDVPluginResult(
            status: CDVCommandStatus_OK,
            messageAs: msg + ",ECHO"
        )

        self.commandDelegate!.send(
            pluginResult,
            callbackId: command.callbackId
        )
    }
}
Run Code Online (Sandbox Code Playgroud)


Flá*_*eal 4

Dan,是的,我只是_在参数之前添加了。

谢谢。