Hive 使用
插件:
yaml
dependencies:
hive
hive-flutter
dev_dependencies
hive_generator
build_runner取和自己项目兼容的插件版本即可
初始化main
dart
Void main async(){
// 确保应用初始化完成
WidgetsFlutterBinding.ensureInitialized();
// 初始化Hive(❗注意: 这里的Hive是hive_flutter包的,而不是hive包里的)
await Hive.initFlutter();
// 注册Hive适配器
Hive.registerAdapter(AppInfoAdapter());
Hive.registerAdapter(AppCategoryAdapter());
}保存基本数据类型是不需要Hive适配器的,只有你存储的数据有自己的对象数据(Class),会需要你自己写一个适配器。
编写Hive适配器
在“data”目录下创建文件data-models.dart
dart
import 'package:hive/hive.dart';
import 'package:hive_flutter/hive_flutter.dart';
part 'data_models.g.dart'; // 代码生成文件
class User extends HiveObject {
/// 用户名称
@HiveField(0)
final String name;
/// 用户年龄
@HiveField(1)
final int age;
User({
required this.name,
required this.age,
})
}注意点:
part的data-models.g.dart名称要和文件名一致@HiveField(0)hive字段声饰,必须从0开始,下一个字段+1,如上0之后就是1.
它的修饰字段和实际对象数据字段是保持一致的。如 HiveField(0) 的 0 就对应的实际数据的name字段。不能乱改动,一旦改动,和旧数据对不上会报错。