我想用自定义plist文件的内容填充表格视图。表视图必须分段。我在Xcode 8中工作并在Swift中编写代码。
我有一个像这样的plist:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Item0</key>
<dict>
<key>SectionKey</key>
<dict/>
</dict>
</dict>
</plist>
在网上我发现了一个很好的描述如何创建一个适合我的分段表视图:Segmented Table View Tutorial
此示例使用如下结构:
struct Section {
var heading: String
var items: [String]
init(title: String, objects: [String]) {
heading = title
items = objects
}
}
然后它用这个函数中的数据填充结构:
func getSectionsFromData() -> [Section] {
var sectionsArray = [Section]()
let animals = Section(title: "Animals", objects: ["Cats", "Dogs", "Birds", "Lions"])
let vehicles = Section(title: "Vehicles", objects: ["Cars", "Boats", "Planes", "Motorcycles", "Trucks"])
sectionsArray.append(animals)
sectionsArray.append(vehicles)
return sectionsArray
}
所以,我的想法是遍历我的plist(我将它存储在一个名为dict的NSMutableDicttionary中)以某种方式获取数据,我可以使用这个例子来以正确的方式填充我的表视图:
for i in (0..<dict.count) {
newDict = dict.object(forKey: "Item\(i)") as! NSMutableDictionary
}
我在newDict中获得的是一个看起来像这样的结构(这些是我的三个部分:账户,信用卡和现金)。所有键和值都是字符串:
{
"Account" = (
{
AmountKey = "Some amount";
CategoryKey = Some category;
DateKey = "Some date";
}
);
"Credit card" = (
{
AmountKey = "Some amount";
CategoryKey = Some category;
DateKey = "Some date";
}
);
"Cash" = (
{
AmountKey = "Some amount";
CategoryKey = Some category;
DateKey = "Some date";
}
);
}
问题是:我如何遍历我的dict,获取所有条目按帐户,信用卡和现金分类,以便我可以使用上面的例子(而不是:let animals = Section(title:&#34) ;动物&#34;,对象:[&#34; Cats&#34;,&#34; Dogs&#34;,&#34; Birds&#34;,&#34; Lions&#34;])我得到类似的东西这:let account = Section(标题:&#34;帐号&#34;,对象:[[&#34; AmountKey&#34;:&#34;一些金额&#34;,&#34; CategoryKey&#34;: &#34;某些类别&#34;,&#34; DateKey&#34;:&#34;某些日期&#34;],[&#34; AmountKey&#34;:&#34;一些金额&#34;, &#34; CategoryKey&#34;:&#34;某些类别&#34;,&#34; DateKey&#34;:&#34;某些日期&#34;],..]。
感谢马丁