如何访问此 Plist 中的数据?
Posted
技术标签:
【中文标题】如何访问此 Plist 中的数据?【英文标题】:How do I access the data in this Plist? 【发布时间】:2014-12-11 21:32:29 【问题描述】:我一直在尝试获取这些数据,将其加载到两个数组中,并最终将它们传递给Swift-Linechart。 目前,我正在使用它来加载数据:
func loadUserData()
var myDict: NSDictionary?
if let path = NSBundle.mainBundle().pathForResource("UserData", ofType: "plist")
if let dict = NSDictionary(contentsOfFile: path) as? Dictionary<String, AnyObject>
userData = dict
一旦我将 userData 放入 dict 中,如何将其放入 CGFLoat 值数组中以便绘制图表?
用户数据.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>Triggers</key>
<dict>
<key>Alcoholic Drinks</key>
<array>
<array>
<date>2014-12-03T16:28:53Z</date>
<string>3</string>
</array>
<array>
<date>2014-12-04T16:29:33Z</date>
<string>0</string>
</array>
</array>
<key>Caffeinated Drinks</key>
<array>
<array>
<date>2014-12-03T16:30:22Z</date>
<string>2</string>
</array>
<array>
<date>2014-12-04T16:30:02Z</date>
<string>1</string>
</array>
</array>
</dict>
<key>Symptoms</key>
<dict>
<key>Redness</key>
<array>
<array>
<date>2014-12-03T16:25:21Z</date>
<string>0.75</string>
</array>
<array>
<date>2014-12-04T16:25:51Z</date>
<string>0.5</string>
</array>
</array>
<key>Swelling</key>
<array>
<array>
<date>2014-12-03T16:27:00Z</date>
<string>.6</string>
</array>
<array>
<date>2014-12-04T16:27:52Z</date>
<string>.2</string>
</array>
</array>
</dict>
</dict>
</plist>
【问题讨论】:
由于您的最后一个问题是关于如何从字典中获取数据,因此您应该发布字典,而不是 plist xml。 您的 plist 中没有数字。我希望你是打算做数字的。 【参考方案1】:假设您将 plist 中的字符串转换为数字。这将提取症状->红肿数据:
func parseRednessData()
let symptoms = userData?["Symptoms"] as [String: AnyObject]
let redness = symptoms["Redness"] as [[AnyObject]]
let floats = redness.map $0[1] as Float
println(floats)
以上述为例,提取其他数据位。
编辑
我注意到在我的原始代码中,floats
实际上是 AnyObject
的数组。我修好了。
【讨论】:
谢谢!这正是我所需要的。是的,我确实将它们从字符串更改为数字。以上是关于如何访问此 Plist 中的数据?的主要内容,如果未能解决你的问题,请参考以下文章