在核心数据中如何保存字典或数组,如字符串数据? [关闭]

Posted

技术标签:

【中文标题】在核心数据中如何保存字典或数组,如字符串数据? [关闭]【英文标题】: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。保存此类数据的方法很多。哪个最有意义。也许这比最优更模棱两可。但肯定不足以关闭。 【参考方案1】:

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

    如果您不打算存储大量数据,可以尝试使用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]
    如果您要存储大量值,那么使用核心数据是有意义的。您可以将值存储为 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

以上是关于在核心数据中如何保存字典或数组,如字符串数据? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

将对象插入核心数据实体时处理重复项

如何使用核心数据访问保存在不同视图控制器中的阵列?

如何在 CoreData 中保存字典数组?

将对象保存在核心数据中(字符串属性,双精度数组)

如何在Objective C的核心数据中保存数组的剩余数据

如何将afnetworking json字典转换为字符串,然后在IOS中将字符串转换为字典?