Swift (iOS) Plugin - Plugin Error - Cordova da aniqlanmadi

Objective-C dan Swift-ga ilova qilingan barcha plaginlarni qayta yozyapman. Ushbu plaginlar Cordova tomonidan chaqiriladi. Barcha plaginlar Objective-Cda yaxshi ishlaydi.

Ammo tezkor versiya plaginida ilovani ishga tushirishga harakat qilsam, quyidagi xatoni oldim.

ERROR: MACPlugin2 plaginida aniqlanmagan «getMAC2» usuli:

Men ushbu xatoni Swift-ga qayta yozadigan har qanday plaginning barcha usulida olaman.

Ushbu plagin kodining misoliga qarang:

import Foundation

@objc(MACPlugin2)
class MACPlugin2 : CDVPlugin {

    func getMAC2(command : CDVInvokedUrlCommand){

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

    }


}

Kimdir nimalar yuz berayotganini bilishadimi?

Eng yaxshi,

Flavio

5
Uni getMac2 (_ buyrug'i: ...) ga o'zgartirishni harakat qilib ko'ring
qo'shib qo'ydi muallif dan, manba
Men _ ni qo'shishga urinib ko'rgan edim, men hatto turli xil katta harflarni ham sezmadim.
qo'shib qo'ydi muallif dan, manba
Dan, funktsiya nomi to'g'ri, bu muammo emas
qo'shib qo'ydi muallif Flávio Leal, manba
Dan, ishlagan, bu muammo, _ ni unutganman. Katta rahmat!
qo'shib qo'ydi muallif Flávio Leal, manba
Dan, ishlagan, bu muammo, _ ni unutganman. Katta rahmat!
qo'shib qo'ydi muallif Flávio Leal, manba

6 javoblar

Mening misolim quyidagicha edi: ishlamay qoldi! Eslatma: Ushbu yechim Swift 3 uchun tuzatish

@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
        )
    }
}
5
qo'shib qo'ydi

Mening misolim quyidagicha edi: ishlamay qoldi! Eslatma: Ushbu yechim Swift 3 uchun tuzatish

@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
        )
    }
}
5
qo'shib qo'ydi

Dan, to'g'rimi, faqat parametrlardan oldin _ ni qo'shdim.

Rahmat.

2
qo'shib qo'ydi
Uning ishi ajoyib, mening vaqtimni saqlab qoldi
qo'shib qo'ydi muallif Chavda jaydeep, manba

Dan, to'g'rimi, faqat parametrlardan oldin _ ni qo'shdim.

Rahmat.

2
qo'shib qo'ydi
Uning ishi ajoyib, mening vaqtimni saqlab qoldi
qo'shib qo'ydi muallif Chavda jaydeep, manba

Parametr men uchun etarli bo'lmaganidan oldin _ ni qo'shish. Usuldan oldin @objc (test:) ni qo'shishga to'g'ri keldi.

@objc(test:)
func test(_ command: CDVInvokedUrlCommand) {
   //whatever
}
2
qo'shib qo'ydi

Parametr men uchun etarli bo'lmaganidan oldin _ ni qo'shish. Usuldan oldin @objc (test:) ni qo'shishga to'g'ri keldi.

@objc(test:)
func test(_ command: CDVInvokedUrlCommand) {
   //whatever
}
2
qo'shib qo'ydi