Swift: 阅读 plist - 如何按键过滤并仅读取和附加值
Swift: Reading plist - How to filter by key and read and append value only
Swift 3
我正在尝试读取一个 plist 文件来更新我的集合视图数组。
我的 menu.plist
有 6 个项目我想读取并附加到我的数组中,该数组使用 .count
更新集合视图。
问题是我无法对字典进行排序。我想将 value 中的字符串附加到我的数组,但按具有文本 "Item 0"、"Item 1" 等的键对传输进行排序。因为数组是无组织的,这使得使用 switch 语句变得更加困难在 didSelectItemAt
.
在代码中,我没有使用 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)
}
Plist
您需要对 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 的说法使用数组
var mainGroup = [String]()
var myArray: [String]?
if let path = Bundle.main.path(forResource: "menu", ofType: "plist") {
myArray = NSArray(contentsOfFile: path) as? [String]
}
print(myArray)
Swift 3
我正在尝试读取一个 plist 文件来更新我的集合视图数组。
我的 menu.plist
有 6 个项目我想读取并附加到我的数组中,该数组使用 .count
更新集合视图。
问题是我无法对字典进行排序。我想将 value 中的字符串附加到我的数组,但按具有文本 "Item 0"、"Item 1" 等的键对传输进行排序。因为数组是无组织的,这使得使用 switch 语句变得更加困难在 didSelectItemAt
.
在代码中,我没有使用 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)
}
Plist
您需要对 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 的说法使用数组
var mainGroup = [String]()
var myArray: [String]?
if let path = Bundle.main.path(forResource: "menu", ofType: "plist") {
myArray = NSArray(contentsOfFile: path) as? [String]
}
print(myArray)