我做了一堂课
import 'package:hive/hive.dart';
part 'CLASStrips.g.dart';
@HiveType()
class Trips{
@HiveField(0)
String tripName;
@HiveField(1)
var date;
}
并创建了它的适配器
// GENERATED CODE - DO NOT MODIFY BY HAND
part of 'CLASStrips.dart';
// **************************************************************************
// TypeAdapterGenerator
// **************************************************************************
class TripsAdapter extends TypeAdapter<Trips> {
@override
Trips read(BinaryReader reader) {
var numOfFields = reader.readByte();
var fields = <int, dynamic>{
for (var i = 0; i < numOfFields; i++) reader.readByte(): reader.read(),
};
return Trips()
..tripName = fields[0] as String
..date = fields[1] as dynamic;
}
@override
void write(BinaryWriter writer, Trips obj) {
writer
..writeByte(2)
..writeByte(0)
..write(obj.tripName)
..writeByte(1)
..write(obj.date);
}
}
在主要功能中,我试图打开盒子并注册适配器
void main() async{
WidgetsFlutterBinding.ensureInitialized();
final appDocumentDir = await path_provider.getApplicationDocumentsDirectory();
Hive.init(appDocumentDir.path);
final tripsBox = await Hive.openBox('tripsBox');
Hive.registerAdapter(TripsAdapter(),33);
runApp(MyHomePage());
}
但是 registerAdapter 函数正在发送消息
位置参数过多:应有 1 个,但找到了 2 个。
尝试删除额外的参数。
我应该如何解决它?