【发布时间】:2015-04-11 12:09:34
【问题描述】:
我已经写了这段代码来改变 plist 文件:
var check = false
let path = NSBundle.mainBundle().pathForResource("se.feomedia.qkrussia", ofType: "plist")
let dict = NSMutableDictionary(contentsOfFile : path!)!
for (key, value) in dict {
if String(key as NSString).hasPrefix("GAME") {
for k in dict.objectForKey(key) as Array<NSDictionary> {
for (g, var d) in k {
if String(g as NSString) == "index" {
check = true
}
if String(g as NSString).hasPrefix("backup") || (String(g as NSString).hasPrefix("question") && check) {
println(g)
let u = d as NSDictionary
println(2)
for (e, var h) in u {
if String(e as NSString).hasPrefix("correct") {
h = "someText"
}
}
d = u
}
else {
if String(g as NSString) == "correct" {
d = "someText"
}
}
}
check = false
}
}
}
dict.writeToFile("/Users/nik/Desktop/correct.plist", atomically: true)
plist 文件包含以下内容:
<dict>
<key>CURRENT_USER_ID</key>
<string>6751073888894976</string>
<key>FBAccessTokenInformationKeyUUID</key>
<string>2AB33590-09AC-4B76-9E57-42005E9CF9B7</string>
<key>GAME_4808886523527168</key>
<array>
<dict>
<key>cat_id</key>
<string>19</string>
<key>cat_name</key>
<string>Знаменитости и СМИ</string>
<key>correct</key>
<string>Макс и Эмме</string>
<key>q_id</key>
<integer>6296760553046016</integer>
<key>question</key>
<string>Как зовут детей Дженифер Лопез?</string>
<key>timestamp</key>
<string>2014-07-28 14:18:18</string>
<key>wrong1</key>
<string>Макс и Эббот</string>
<key>wrong2</key>
<string>Дженни и Марк</string>
<key>wrong3</key>
<string>Селена и Джастин</string>
</dict>
<dict>
<key>cat_id</key>
<string>19</string>
<key>cat_name</key>
<string>Знаменитости и СМИ</string>
<key>correct</key>
<string>2008 г.</string>
<key>q_id</key>
<integer>4765042876612608</integer>
<key>question</key>
<string>В каком году Дима Билан победил на Евровидении?</string>
<key>timestamp</key>
<string>2014-07-28 14:18:18</string>
<key>wrong1</key>
<string>2006 г.</string>
<key>wrong2</key>
<string>2007 г.</string>
<key>wrong3</key>
<string>2010 г.</string>
</dict>
<dict>
<key>cat_id</key>
<string>19</string>
<key>cat_name</key>
<string>Знаменитости и СМИ</string>
<key>correct</key>
<string>Лампочка</string>
<key>q_id</key>
<integer>6690225728258048</integer>
<key>question</key>
<string>Любимый объект художника Васи Ложкина на его собственных картинах?</string>
<key>timestamp</key>
<string>2015-01-07 12:08:45</string>
<key>wrong1</key>
<string>Кот</string>
<key>wrong2</key>
<string>Рамка</string>
<key>wrong3</key>
<string>Мона Лиза</string>
</dict>
还有更多。 plist 写入正确,一切正常,从 plist 读取工作正常,但正确的.plist 文件与真实文件完全相同,因此没有任何改变。我不知道为什么这不起作用。
编辑: 字典也可能包含 3 个元素:2 个字典(question 和 backupQuestion 以及带有整数的元素索引)
【问题讨论】: