2017-03-09 461 views
2

我正在重寫從Objective-C到Swift的應用程序的所有插件。 這些插件由Cordova調用。 Objective-C中所有的插件都能正常工作。Swift(iOS)插件 - 未在插件錯誤中定義的方法 - Cordova

但是,當我試圖用swift版插件運行應用程序時,出現以下錯誤。

ERROR: Method 'getMAC2:' not defined in Plugin 'MACPlugin2'

我得到這個錯誤在任何插件,我重寫到Swift的所有方法。

看看這個插件的代碼示例:

import Foundation 

@objc(MACPlugin2) 
class MACPlugin2 : CDVPlugin { 

    func getMAC2(command : CDVInvokedUrlCommand){ 

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

    } 


} 

有人有什麼正在發生的想法?

最佳,

弗拉維奧

+1

嘗試將其更改爲'getMac2(_命令:...)' – dan

+0

丹中,func名稱是正確的,它不是這個問題 –

+0

我的意思嘗試添加'_',我甚至沒有注意到不同的大寫字母。 – dan

回答

2

丹,是正確的,我的參數之前剛剛添加_

謝謝。

3

我的例子如下,沒有_它不工作! 注意:該解決方案是一個修復斯威夫特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 
     ) 
    } 
} 
相關問題