我在Flutter应用程序中添加了一些iOs和Android本机代码。本机调用的函数返回一个布尔值:
Future<bool> get isOn => _channel.invokeMethod('isOn').then<bool>((d) => d);
在Android上一切正常。在通道的方法调用处理程序中,我返回一个布尔值:
...
case "isAvailable":
{
result.success(myFuncThatReturnsTrueOrFalse());
break;
}
...
在iOs上我有一个类似的处理程序,它总是返回true:
if ([@"isOn" isEqualToString:call.method]) {
result(@(TRUE));
}
但是当我在iOs上运行dart isOn函数时,我得到一个关于bool和int值的对话的错误:
type 'int' is not a subtype of type 'FutureOr<bool>'
我检查了多个插件,他们都以同样的方式做了bool的东西。我在某处遗漏了什么吗?
我正在运行最新的稳定颤振版本(1.2.1),最新的XCode(10.2.1)和最新的Android Studio(3.4)。
将@(TRUE)改为@(YES)就可以了。