据我了解,您希望在设备内存中存储一些值(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]
- 如果您要存储大量值,那么使用核心数据是有意义的。您可以将值存储为
String 或 Data。
在第一种情况下,您可以将数组转换为 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)
}