所以我试图存储一些帖子ID基本上所以我可以知道用户读了什么,所以我可以显示一个"看到"按钮。
var actual_data = UserDefaults.standard.array(forKey: "seen_posts")
UserDefaults.standard.setValue(actual_data?.insert(321, at: 0), forKey: "seen_posts")
我试过这个,但它似乎无法运作,Ambiguous use of 'insert(_:at:)'
更新
var actual_data = UserDefaults.standard.array(forKey: "seen_posts")
UserDefaults.standard.set(actual_data?.append(["miodrag"]), forKey: "seen_posts")
答案 0 :(得分:2)
错误的原因是编译器无法推断出数组的类型。
花费额外的一行来读取,更改和写入数据,例如:
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_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")