Arrays (键:X,值:X)不能转换为';(",;,元组有不同数量的元素
我对斯威夫特很陌生,我现在有点被卡住了。。。我一直在“for”(用Arrays (键:X,值:X)不能转换为';(",;,元组有不同数量的元素,arrays,json,swift,dictionary,tuples,Arrays,Json,Swift,Dictionary,Tuples,我对斯威夫特很陌生,我现在有点被卡住了。。。我一直在“for”(用***标记)部分出错。。。我不明白为什么 以下是全部代码: private func startPreload() { if UserDefaults.standard.bool(forKey: ISPRELOADED) { return } let loans = readPreload() // *** Error happens here: for (name,
***
标记)部分出错。。。我不明白为什么
以下是全部代码:
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
}
也许我必须进一步从贷款中获取密钥和价值?此错误消息:
(Key:X,value:X)不能转换为“(,,…”,元组的元素数不同
表示循环的元素过多。在你的情况下,你只需要一个
for loan in loans {
let _ = LoanResources.insertLoan(
withName: loan.name,
andAmount: loan.amount,
andNote: loan.note,
andCreated: loan.created,
andDue: loan.due,
andDone: loan.done,
andImage: loan.image,
andContactInfo: loan.contactInfo,
andContactTypeMail: loan.contactTypeMail,
andChargeMode: loan.chargeMode,
andChargeAmount: loan.chargeAmount)
}