【问题标题】:Save list of object in hive flutter在蜂巢颤动中保存对象列表
【发布时间】:2021-07-20 16:34:59
【问题描述】:

我想在 Flutter Hive 中保存对象列表。有没有办法实现它。我为笔记创建了一个模型类。具有注释标题和描述等字段。我想用 DateTime.now() 作为键将列表保存在蜂巢颤动中。有什么方法可以实现吗?

class NotedBox {
  static Box<List<NotesModel>> getNotedBox() {
    return Hive.box<List<NotesModel>>("Notes");
  }
}

这是我在 main.dart 中打开的盒子。

   Future<void> main() async {
      WidgetsFlutterBinding.ensureInitialized();
      Directory appDocDir = await getApplicationDocumentsDirectory();
      Prefrences.init();
      await Hive.initFlutter(appDocDir.path);
      Hive.registerAdapter(NotesModelAdapter());
      await Hive.openBox<List<NotesModel>>("Notes");
      runApp(MyApp());
    }

这是适配器文件

class NotesModelAdapter extends TypeAdapter<NotesModel> {
  @override
  final int typeId = 1;

  @override
  TimeBlockModel read(BinaryReader reader) {
    final numOfFields = reader.readByte();
    final fields = <int, dynamic>{
      for (int i = 0; i < numOfFields; i++) reader.readByte(): reader.read(),
    };
    return NotesModel(
      title: fields[0] as String,
      description: fields[1] as String,
    );
  }

  @override
  void write(BinaryWriter writer, NotesModel obj) {
    writer
      ..writeByte(4)
      ..writeByte(0)
      ..write(obj.title)
      ..writeByte(1)
      ..write(obj.description);
  }

  @override
  int get hashCode => typeId.hashCode;

  @override
  bool operator ==(Object other) =>
      identical(this, other) ||
      other is TimeBlockModelAdapter &&
          runtimeType == other.runtimeType &&
          typeId == other.typeId;
}

这是我遇到的错误。

 Unhandled Exception: HiveError: Cannot write, unknown type: String. Did you forget to register an adapter?

注意:这是我第二次在同一个应用程序中使用配置单元。第一个蜂巢箱工作正常,但当时我没有保存列表。

【问题讨论】:

    标签: flutter dart flutter-hive


    【解决方案1】:

    也许你没有在 main 方法中注册你的适配器。

    Hive.registerAdapter(MyObjectAdapter());

    hive

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-01-29
      • 2021-04-09
      • 2021-07-07
      • 2020-06-20
      • 1970-01-01
      • 2021-10-07
      • 1970-01-01
      • 2018-09-13
      相关资源
      最近更新 更多