Ошибка XCode: "Значение типа 'AppDelegate' не имеет члена 'Канал платформы Flutter' receiveBatteryLevel 'на официальном сайте Flutter - PullRequest
0 голосов
/ 25 марта 2020

Я пытаюсь написать собственный код для своего проекта Flutter, используя Swift и Xcode, и для начала я следую примеру на официальном сайте Flutter в разделе интеграции платформы с документацией на сайте ниже под примером swift / ios ,

https://flutter.dev/docs/development/platform-integration/platform-channels?tab=ios-channel-swift-tab

на стороне клиента реализации все в порядке, я точно следовал примеру кода. Однако на собственной стороне в файле «AppDelegate.swift» я получаю сообщение об ошибке: «Значение типа« AppDelegate »не имеет члена self? .receiveBatteryLevel (result: result) "

мой код в AppDelegate.swift выглядит следующим образом:

import UIKit
import Flutter
import Firebase
import GoogleMaps

@UIApplicationMain
@objc class AppDelegate: FlutterAppDelegate {
  override func application(
    _ application: UIApplication,
    didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?
  ) -> Bool {
    GMSServices.provideAPIKey("myKeyGoesHere(don't mind)")
    FirebaseApp.configure()

    let controller : FlutterViewController = window?.rootViewController as! FlutterViewController
     let batteryChannel = FlutterMethodChannel(name:"samples.flutter.dev/battery",
       binaryMessenger: controller as! FlutterBinaryMessenger)


    batteryChannel.setMethodCallHandler({
         [weak self] (call: FlutterMethodCall, result: @escaping FlutterResult) -> Void in
        // Note: this method is invoked on the UI thread.
        // Handle battery messages.
        guard call.method == "getBatteryLevel" else {
           result(FlutterMethodNotImplemented)
           return
         }
     self?.receiveBatteryLevel(result: result)
      })


    GeneratedPluginRegistrant.register(with: self)
    return super.application(application, didFinishLaunchingWithOptions: launchOptions)
  }
}

private func receiveBatteryLevel(result: FlutterResult) {
  let device = UIDevice.current
  device.isBatteryMonitoringEnabled = true
  if device.batteryState == UIDevice.BatteryState.unknown {
    result(FlutterError(code: "UNAVAILABLE",message: "Battery info unavailable",details: nil)
    )
  } else {
    result(Int(device.batteryLevel * 100))
  }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...