截图中有一个plist。它填满了表格及其单元格。我希望将所有词典都放在“Admin”中,例如“FirstTable”“SecondTable”等。下面代码给出
“类型”(键:任意,值:任何)'不符合协议'序列'
错误。
if let path = Bundle.main.path(forResource: "Admin", ofType: "plist") {
myDict = NSDictionary(contentsOfFile: path)
let admin = myDict?.object(forKey: "Admin") as! NSDictionary
for dicts in admin{
for sub_dict in dicts{
print(sub_dict)
}
}
}
您不能以迭代数组的方式迭代字典。你必须改变
for dicts in admin {
至
for (key, value) in admin {
作为字典条目由一个键和一个值组成,而不仅仅是一个对象,例如数组。
如果你想遍历所有词典,你将“需要”递归。如果你不知道那是什么,它基本上是一种自称(但不是无限)的方法。你可以这样做,例如:
func iterateThroughDictionary(dict: Dictionary<String, Any>) {
for (key, value) in dict {
if let subDict = value as? Dictionary<String, Any> {
iterateThroughDictionary(dict: subDict)
} else {
print(value);
}
}
}
然后你只需要用root-dictionary调用它。