iOS上的共享首选项

时间:2020-02-26 16:15:46

标签: ios flutter sharedpreferences

我正在尝试使用共享首选项,但是我有这种奇怪的行为。

我正在使用:

shared_preferences: ^0.5.6+2

initState 上的 StateFull Widget 上,我有这个:

@override
  void initState() {
    super.initState();
    _testing()
  }


Future<void> _testing() async{
 print("starting")
 SharedPreferences prefs = await SharedPreferences.getInstance();
 await prefs.setInt('value', 1);
 print("saved?")
}

当我用flutter run运行代码时,我只会得到“开始”的打印,而不是“保存?”的打印。

我用于构建Android应用程序的该项目所使用的完全相同的代码完全相同。但是对于iOS无法正常工作。

我缺少什么?

2 个答案:

答案 0 :(得分:0)

它有效,没有错误。复制并粘贴,然后重试:

import 'package:flutter/material.dart';
import 'package:shared_preferences/shared_preferences.dart';

void main() {
  runApp(MyApp());
}

class MyApp extends StatefulWidget {
  @override
  State<StatefulWidget> createState() {
    return MyAppState();
  }
}

class MyAppState extends State<MyApp> {

  saveValue() async{
    print("Starting...");
    SharedPreferences prefs = await SharedPreferences.getInstance();
    prefs.setInt('value', 1);
    print("Saved?");
  }


  @override
  void initState() {
    super.initState();
    saveValue();
  }

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        appBar: AppBar(title: Text("Shared Preferences")),
      ),
    );
  }
}

答案 1 :(得分:0)

它不会打印,因为您在设置int值之前正在使用await。

await prefs.setInt('value', 1);

如果删除了await,请尝试检查打印值,它将正常工作。

让我知道它是否有效。