flutterchina / flutter-in-action

《Flutter实战》书稿。第二版书稿已上传,请移步新Repo。
https://book.flutterchina.club
8.68k stars 1.7k forks source link

小错误: 使用Swift实现iOS API 一节中的 FlutterMethodChannel 初始化代码 #294

Open scplwq opened 5 years ago

scplwq commented 5 years ago

这一节中有个代码小错误, 见 使用Swift实现iOS API

错误之处 let batteryChannel = FlutterMethodChannel.init(name: "samples.flutter.io/battery", binaryMessenger: controller);

修改方案 controller 应该替换为 controller.bynaryMessenger

参考 官网例子

CarrieUp commented 4 years ago

請問爲什麽需要這樣改呢? 我在兩個mac上面跑過我的代碼,我的mac上面需要改成controller.binaryMessenger 但是在同事的mac上controller.binaryMessenger 提示錯誤,需要改回來

scplwq commented 4 years ago

这个例子是从官网中摘出来的. 我当时跑的swift 版本, 在 swift 的版本中是需要改为 controller.bynaryMessenger, 官网也是这样. 如下

let batteryChannel = FlutterMethodChannel(name: "samples.flutter.dev/battery",
                                              binaryMessenger: controller.binaryMessenger)

比较神奇的是在 OC 的版本中, 并不是,

 FlutterMethodChannel* batteryChannel = [FlutterMethodChannel
                                          methodChannelWithName:@"samples.flutter.dev/battery"
                                          binaryMessenger:controller];

我还没有试过 OC 的版本.

jiehu5114 commented 4 years ago

mark