Ios 具有UserDefaults的Swift存储阵列
所以我试图存储一些帖子id,这样我就可以知道用户读了什么,这样我就可以显示一个“看到”按钮 我已经试过了,但似乎不起作用,Ios 具有UserDefaults的Swift存储阵列,ios,arrays,swift,Ios,Arrays,Swift,所以我试图存储一些帖子id,这样我就可以知道用户读了什么,这样我就可以显示一个“看到”按钮 我已经试过了,但似乎不起作用,含糊不清地使用了“insert(u:at:)” 更新 var actual_data = UserDefaults.standard.array(forKey: "seen_posts") UserDefaults.standard.set(actual_data?.append(["miodrag"]), forKey: "seen_posts") 错误的原因是编译器无法
含糊不清地使用了“insert(u:at:)”
更新
var actual_data = UserDefaults.standard.array(forKey: "seen_posts")
UserDefaults.standard.set(actual_data?.append(["miodrag"]), forKey: "seen_posts")
错误的原因是编译器无法推断数组的类型 额外花费一行来读取、更改和写入数据,例如:
let defaults = UserDefaults.standard
var seenPosts : [Int]
if let actual = defaults.array(forKey: "seen_posts") as? [Int] {
seenPosts = actual
} else {
seenPosts = [Int]()
}
seenPosts.insert(321, at: 0)
defaults.set(seenPosts, forKey: "seen_posts")
或者如果按照建议注册了默认键seen\u posts
,则更简单
let defaults = UserDefaults.standard
var seenPosts = defaults.array(forKey: "seen_posts") as! [Int]
seenPosts.insert(321, at: 0)
defaults.set(seenPosts, forKey: "seen_posts")
移动
actual_data?。将(321,at:0)
插入其上方的行,并将actual_data设置为forkey顺便说一句,命名数组实际_data会误导您更好的名称是什么?只需省略其中的数据或添加不需要的数组,因为您可以始终检查其类型。顺便说一句,约定是camelCase(不是下划线),这可能有助于让array=defaults.object(forKey:“seen_posts”)作为?[字符串]??[String]()debugPrint(数组),所以我添加了这个来测试它,我得到了一个空数组根据你的(第一个)代码数组是[Int]
。
let defaults = UserDefaults.standard
var seenPosts = defaults.array(forKey: "seen_posts") as! [Int]
seenPosts.insert(321, at: 0)
defaults.set(seenPosts, forKey: "seen_posts")