【问题标题】:How to save dictionary or array like String data when in Core data? [closed]在核心数据中如何保存字典或数组,如字符串数据? [关闭]
【发布时间】:2020-12-06 22:32:17
【问题描述】:

目标:

将已关注用户的uid存储在核心数据中

如何根据我的用例存储这些 uid?

UIDS = 字符串

想法:

  • 创建一个数组或字典
  • 为每个 uid 创建一个新属性

【问题讨论】:

  • 您已经在 12 小时前驳回了相同的主题。你为什么要重复它?
  • @ElTomato 的细微差别总是有用的,我的朋友。因注意力不集中而被否决。我将其删除并重新发布以纠正错误。 (关闭原因)
  • 您的主题没有意义。标题首先建议您要保存一个目录。然后,您正在谈论保存 UID。那么你在节省什么?
  • @ElTomato dict 或 arr。保存此类数据的方法很多。哪个最有意义。也许这比最优更模棱两可。但肯定不足以关闭。

标签: ios swift xcode dictionary core-data


【解决方案1】:

据我了解,您希望在设备内存中存储一​​些值(uid)的数组。在我看来,这里有几个简单的解决方法。

  1. 如果您不打算存储大量数据,可以尝试使用UserDefaults。然后您的代码将如下所示:
let array = ["array", "of", "some", "values"]

// Write to User Defaults
UserDefaults.standard.setValue(array, forKey: "followedIds")

// Read from it
let readArray = UserDefaults.standard.value(forKey: "followedIds") as! [String]
  1. 如果您要存储大量值,那么使用核心数据是有意义的。您可以将值存储为 StringData

在第一种情况下,您可以将数组转换为 String,如下所示:

let array = ["array", "of", "some", "values"]

// Specify any separator
let separator = "%^&"

// Join an array into string with the specified separator
let string = array.joined(separator: separator)

// Store it in core data

// Split it later
let readArray = string.split(separator: separator)

在第二种情况下,您可以将其编码为 JSON 表示并稍后使用:

let array = ["array", "of", "some", "values"]

// Encode array into Data
var data: Data
do {
    data = try JSONEncoder().encode(data)
} catch {
    print(error)
}

// Store it in core data

// Decode it later
var readArray: [String]
do {
    readArray = try JSONDecoder().decode([String].self, from: data)
} catch {
    print(error)
}

【讨论】:

  • 我认为“很多”是数百个字符串,因此使用 opt 2
猜你喜欢
  • 1970-01-01
  • 2023-02-07
  • 1970-01-01
  • 1970-01-01
  • 2020-06-10
  • 2017-09-20
  • 1970-01-01
  • 1970-01-01
  • 2017-10-14
相关资源
最近更新 更多