gpt4 book ai didi

ios - Swift:阅读 plist - 如何按键过滤并仅读取和附加值

转载 作者:行者123 更新时间:2023-11-28 06:11:58 26 4
gpt4 key购买 nike

swift 3

我正在尝试读取一个 plist 文件来更新我的 Collection View 数组。

我的 menu.plist 有 6 个项目,我想读取这些项目并将其附加到使用 .count 更新 Collection View 的数组。

问题是我无法对字典进行排序。我想将 value 中的字符串附加到我的数组,但按具有文本“项目 0”、“项目 1”等的键对传输进行排序。因为数组是无组织的,这使得在 didSelectItemAt 上使用 switch 语句变得更加困难.

在代码中,我没有使用 key,只是将 value 附加到 mainGroup 数组,但它是无组织的,我需要通过 plist key 过滤它

ViewDidLoad 中的代码

var mainGroup = [String]()

var myDict: NSDictionary?
if let path = Bundle.main.path(forResource: "menu", ofType: "plist") {
myDict = NSDictionary(contentsOfFile: path)
}
if let dict = myDict {

print(dict)

for (_, value) in dict {

mainGroup.append("\(value)")
}

print(mainGroup)
}

列表

pic 1

最佳答案

您需要对您的 dict.keys 数组进行排序,并通过这些排序的键访问值

完整代码

var mainGroup = [String]()

var myDict: [String:String]?
if let path = Bundle.main.path(forResource: "menu", ofType: "plist") {
myDict = NSDictionary(contentsOfFile: path) as? [String:String]
}
if let dict = myDict {

print(dict)

for key in dict.keys.sorted() {

mainGroup.append(dict[key]!)
}



print(mainGroup)
}

更新

像@rmaddy 说的那样使用数组

enter image description here

    var mainGroup = [String]()

var myArray: [String]?
if let path = Bundle.main.path(forResource: "menu", ofType: "plist") {
myArray = NSArray(contentsOfFile: path) as? [String]
}

print(myArray)

关于ios - Swift:阅读 plist - 如何按键过滤并仅读取和附加值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46289035/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com