• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

c# - 如何在 NSUserDefaults 中存储 c# 列表

[复制链接]
菜鸟教程小白 发表于 2022-12-13 04:34:34 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题

我正在尝试为 NSUserDefaults 中的每个元素存储一个包含 DateTime 值和 String 值的列表。

var reminderList = new List<doubleVariableDateAndName>();
        NSDate dateNS = dateSet.Date;
        DateTime dateDT = ((DateTime)dateSet.Date).ToLocalTime();

        reminderList.Add(new doubleVariableDateAndName() { Name = nameSet.Text, DueDay = dateDT});

如果有帮助,您可以忽略代码的第 2 行和第 3 行以及我想要存储在 NSUserDefaults 中的提醒列表中的列表。

public NSUserDefaults dataBase = NSUserDefaults.StandardUserDefaults;

    public class doubleVariableDateAndName
    {
        public string Name;
        public DateTime DueDay;
    }

enter image description here

enter image description here



Best Answer-推荐答案


我还没有遇到在 NSUserDefaults 中存储对象的方法。但是我序列化和反序列化我的对象,你可以对你的列表做同样的事情。

所以我有一个 Account 对象。我将其序列化为字符串,然后存储在 NSUserDefaults 中,如下所示

public void SaveAccount(Account account)
{
    var stringAccount = JsonConvert.SerializeObject(account);
    NSUserDefaults.StandardUserDefaults.SetString(stringAccount,AccountIdentifier);
}

然后为了取回对象,我反序列化并返回它。

public Account GetAccount()
{
   var userDefaults = NSUserDefaults.StandardUserDefaults;
   var stringAccount = userDefaults.StringForKey(AccountIdentifier);
   if (!string.IsNullOrEmpty(stringAccount))
   {
      var account = JsonConvert.DeserializeObject<Models.Account>(stringAccount);
      return account;
   }

   return null;
}

我使用 Newtonsoft.Json 来处理序列化和反序列化。你可以阅读它here如果你还没有使用它。

所以为了让你的列表序列化你会做类似的事情

public void SaveList(List<doubleVariableDateAndName> reminderList)
{
    var serializedContent = JsonConvert.SerializeObject(reminderList);
    NSUserDefaults.StandardUserDefaults.SetString(serializedContent ,"yourUniqueIdentifier");
}

然后从您可以使用的商店中取回您的 list

public List<doubleVariableDateAndName> GetReminderList()
{
   var userDefaults = NSUserDefaults.StandardUserDefaults;
   var serializedContent = userDefaults.StringForKey("yourUniqueIdentifier");
   if (!string.IsNullOrEmpty(serializedContent ))
   {
      var reminderList = JsonConvert.DeserializeObject<List<doubleVariableDateAndName>>(serializedContent);
      return reminderList;
   }

   return null;
}

将函数重新格式化为最适合您的格式,但这将允许您将列表存储在 NSUserDefaults 中。

关于c# - 如何在 NSUserDefaults 中存储 c# 列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51743672/

回复

使用道具 举报

懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关注0

粉丝2

帖子830918

发布主题
阅读排行 更多
广告位

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap