我想在颤振中使用共享首选项,但无法将"Object"类型分配给"bool"



代码如下:

import 'package:shared_preferences/shared_preferences.dart';
sharedUtil(String key,Object dataType,Object data) async{
SharedPreferences prefs=await SharedPreferences.getInstance();
switch(dataType){
case bool:
prefs.setBool(key, data);break;
//other types...
}
}

它报告无法将参数类型"Object"分配给参数类型"bool*"。我不知道如何转换它的类型非常感谢。

此错误是因为setBool方法需要bool作为数据,但您的数据是Object的类型。可以使用类型转换运算符(as(将类型从Object转换为bool

按如下方式更改代码。

import 'package:shared_preferences/shared_preferences.dart';
sharedUtil(String key,Object dataType,Object data) async{
SharedPreferences prefs=await SharedPreferences.getInstance();
switch(dataType){
case bool:
prefs.setBool(key, data as bool);break;
//other types...
}
}

我不知道这是否是一个正确的答案。我在数据后添加as bool

sharedAddData(String key,Object dataType,Object data) async{
SharedPreferences prefs=await SharedPreferences.getInstance();
switch(dataType){
case bool:
prefs.setBool(key, data as bool);break;
case double:
prefs.setDouble(key, data as double);break;
case int:
prefs.setInt(key, data as int);break;
case String:
prefs.setString(key, data as String);break;
case List:
prefs.setStringList(key, data as List<String>);break;
default:
prefs.setString(key, data as String);break;
}
}

相关内容

最新更新