面试题答案
一键面试- 引入依赖:
在
pubspec.yaml
文件中添加shared_preferences
依赖:
然后运行dependencies: shared_preferences: ^2.0.15
flutter pub get
获取依赖。 - 存储字符串数据:
import 'package:shared_preferences/shared_preferences.dart'; Future<void> saveStringToSharedPrefs(String key, String value) async { final prefs = await SharedPreferences.getInstance(); try { await prefs.setString(key, value); } catch (e) { // 处理异常,例如写入失败 print('Failed to save string to SharedPreferences: $e'); } }
- 读取字符串数据:
Future<String?> readStringFromSharedPrefs(String key) async { final prefs = await SharedPreferences.getInstance(); try { return prefs.getString(key); } catch (e) { // 处理异常,例如读取失败 print('Failed to read string from SharedPreferences: $e'); return null; } }
可能遇到的异常及处理
- 初始化异常:在
SharedPreferences.getInstance()
时可能会因为设备问题或权限问题等导致初始化失败。处理方式是在try - catch
块中捕获异常,如上述代码示例中,在catch
块中打印错误信息,以便开发者定位问题。 - 类型不匹配异常:如果尝试以错误的类型读取数据(例如,用
getString
读取一个存储为整数的数据),可能会得到null
或引发异常。所以在存储和读取数据时要确保类型匹配。如果不确定数据类型,可以先检查是否存在,再进行读取。 - I/O 异常:在写入或读取数据时,可能会因为设备 I/O 问题导致操作失败。同样通过
try - catch
块捕获异常并进行相应处理,如打印错误信息,给用户提供友好提示等。