【发布时间】:2016-12-06 15:00:16
【问题描述】:
我对 Swift 很陌生,现在我有点卡住了...我在“for”(标有 ***)部分不断收到错误...我不能不明白为什么?!
这是完整的代码:
private func startPreload() {
if UserDefaults.standard.bool(forKey: ISPRELOADED) {
return
}
let loans = readPreload()
// *** Error happens here:
for (name, amount, note, created, due, done, image, contactInfo, contactTypeMail, chargeMode, chargeAmount) in loans {
let _ = LoanResources.insertLoan(withName: name, andAmount: amount, andNote: note, andCreated: created, andDue: due, andDone: done, andImage: image, andContactInfo: contactInfo, andContactTypeMail: contactTypeMail, andChargeMode: chargeMode, andChargeAmount: chargeAmount)
}
UserDefaults.standard.set(true, forKey: ISPRELOADED)
}
private func readPreload() -> [String: String] {
var preparedLoans = [String: String]()
let preloadFileUrl = Bundle.main.url(forResource: "preload", withExtension: "strings")
do {
guard let fileLoan = preloadFileUrl else {
return preparedLoans
}
let data = try Data(contentsOf: fileLoan)
let json = try JSONSerialization.jsonObject(with: data, options: .allowFragments) as! NSDictionary
let loanArray = json["Loans"] as! NSArray
for loan in loanArray {
let loanDict = loan as! NSDictionary
let name = loanDict["name"] as! String
let amount = loanDict["amount"] as! String
let note = loanDict["note"] as! String
let created = loanDict["created"] as! String
let due = loanDict["due"] as! String
let done = loanDict["done"] as! String
let image = loanDict["image"] as! String
let contactInfo = loanDict["contactInfo"] as! String
let contactTypeMail = loanDict["contactTypeMail"] as! String
let chargeMode = loanDict["chargeMode"] as! String
let chargeAmount = loanDict["chargeAmount"] as! String
preparedLoans[name] = name
preparedLoans[amount] = amount
preparedLoans[note] = note
preparedLoans[created] = created
preparedLoans[due] = due
preparedLoans[done] = done
preparedLoans[image] = image
preparedLoans[contactInfo] = contactInfo
preparedLoans[contactTypeMail] = contactTypeMail
preparedLoans[chargeMode] = chargeMode
preparedLoans[chargeAmount] = chargeAmount
}
} catch {
print(error.localizedDescription)
}
return preparedLoans
}
也许我必须进一步从贷款中获取关键和价值?
【问题讨论】:
标签: arrays json swift dictionary tuples