Flutter获取iOS中UserDefaults的内容

9 篇文章 0 订阅
7 篇文章 0 订阅

Flutter中文网的原文
我怎么在 Flutter 中访问 UserDefaults?
在 iOS 中,你可以使用属性列表来存储键值对的集合,即我们熟悉的 UserDefaults。
在 Flutter 中,可以使用 Shared Preferences plugin 来达到相似的功能。它包裹了 UserDefaluts 以及 Android 上等价的 SharedPreferences 的功能。

我试了一下,我特么???黑人问号???获取到的都是null,什么鬼?撸源码
在这里插入图片描述
是不是很熟悉,这个插件就是用channel来使用UserDefaults的在这里插入图片描述

看下获取的方法,它要判断hasPrefix:@“flutter.”,哟西找到原因了,原来这个插件在使用UserDefaults的时候会自动在key的前面加上"flutter.",那么想要共通就注释掉

去shared_preferences.dart里修改源码

class SharedPreferences {
  SharedPreferences._(this._preferenceCache);

  static const String _prefix = '';  // 这里将"flutter."改为''

ok保存一下,再去获取就可以获取到iOS项目中以前保存过的UserDefaults键值对了

这种方式会影响本地的库 其他项目导入都自动是去了flutter.的,自己酌情删除。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Flutter 获取字符串指定内容可以使用 Dart 的字符串截取方法。Dart 字符串截取方法有以下几种: 1. `substring(startIndex, [ endIndex ])`:截取指定范围的字符串,startIndex 表示起始位置,endIndex 表示终止位置,不包括 endIndex,如果不传 endIndex,则默认截取到字符串结尾。 示例代码: ``` String str = 'Hello World'; String subStr = str.substring(6); // 从第 6 个字符开始截取到结尾 print(subStr); // 输出:"World" String subStr2 = str.substring(0, 5); // 截取从第 0 个字符到第 5 个字符(不包括第 5 个字符) print(subStr2); // 输出:"Hello" ``` 2. `split(separator)`:以指定的字符串为分隔符分割字符串,返回一个字符串列表。 示例代码: ``` String str = 'Hello,World'; List<String> list = str.split(','); print(list); // 输出:["Hello", "World"] ``` 3. `indexOf(pattern, [ startIndex ])`:查找字符串指定字符串或字符的位置,返回第一次出现的位置,如果没有找到,则返回 -1。startIndex 表示查找的起始位置,不传则默认从头开始查找。 示例代码: ``` String str = 'Hello World'; int index = str.indexOf('o'); print(index); // 输出:4 int index2 = str.indexOf('o', 5); // 从第 5 个字符开始查找 print(index2); // 输出:7 ``` 4. `lastIndexOf(pattern, [ startIndex ])`:与 indexOf 方法类似,不同的是从后往前查找,返回最后一次出现的位置。 示例代码: ``` String str = 'Hello World'; int index = str.lastIndexOf('o'); print(index); // 输出:7 int index2 = str.lastIndexOf('o', 6); // 从第 6 个字符往前查找 print(index2); // 输出:4 ``` 以上就是在 Flutter 获取字符串指定内容的方法。根据实际需求选择合适的方法即可。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值