Невозможно преобразовать значение типа String в ожидаемый тип аргумента EInkSizeType - PullRequest
0 голосов
/ 02 августа 2020

Я пытаюсь использовать NF C Framework, который находится в Objective C, я сделал заголовок моста и преобразовал вызов так быстро.

но получил ошибку здесь:

"Невозможно преобразовать значение типа String в ожидаемый тип аргумента EInkSizeType"

Кто-нибудь может помочь .?

        let image = UIImage(named: "nummer27")
                        
        
      let EInkSizeType420 = "EInkSizeType420"
        
     //  [[NFCTagReader sharedSingleton] sendImage:image einkSizeType:EInkSizeType420];];
     //  Converted to Swift 5.2 by Swiftify v5.2.19376 - https://swiftify.com/
      NFCTagReader.sharedSingleton().sendImage(image!, einkSizeType: EInkSizeType420)
        
       

1 Ответ

0 голосов
/ 02 августа 2020

Подпись метода ожидает значение типа EInkSizeType для параметра einkSizeType:, поэтому полная подпись будет:

sendImage(_ image: UIImage, einkSizeType: EInkSizeType)

Не зная точной структуры, я можно только догадываться, что перечисление будет примерно таким EInkSizeType.EInkSizeType420. Автозаполнение должно помочь вам в этом, просто начните набирать . в качестве параметра, и должен быть показан список возможных значений. Поэтому, предполагая, что .EInkSizeType420 является правильным значением перечисления, ваш код должен выглядеть следующим образом:

let image = UIImage(named: "nummer27")

 //  [[NFCTagReader sharedSingleton] sendImage:image einkSizeType:EInkSizeType420];];
 //  Converted to Swift 5.2 by Swiftify v5.2.19376 - https://swiftify.com/
  NFCTagReader.sharedSingleton().sendImage(image!, einkSizeType: .EInkSizeType420)

Кроме того, просто совет, в производстве старайтесь не использовать ! (принудительное развертывание), где это возможно, и выберите ? (необязательно), если приложение не предназначено для sh, если значение равно null. Вместо этого попробуйте аккуратно обработать неожиданный случай, используя guard let ... else { ... }:

func sendImageToNFCTag() {
  guard let image = UIImage(named: "nummer27") else {
       // Show alert dialog that image couldn't be found here
       // ...
       return
  }

  //  [[NFCTagReader sharedSingleton] sendImage:image einkSizeType:EInkSizeType420];];
  //  Converted to Swift 5.2 by Swiftify v5.2.19376 - https://swiftify.com/
  NFCTagReader.sharedSingleton().sendImage(image, einkSizeType: .EInkSizeType420)
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...