Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 具有UserDefaults的Swift存储阵列_Ios_Arrays_Swift - Fatal编程技术网

Ios 具有UserDefaults的Swift存储阵列

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") 错误的原因是编译器无法

所以我试图存储一些帖子id,这样我就可以知道用户读了什么,这样我就可以显示一个“看到”按钮

我已经试过了,但似乎不起作用,
含糊不清地使用了“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")