[英]can i add key value pair to NSarray or dictionary inside a for loop?
[英]Appending value-pair to a dictionary-key
我正在閱讀包含許多部分的文本文件。 我將有一個像這樣的字典:
stringArrayCompleteData['Objekt']['Mobile']
stringArrayCompleteData['Objekt']['address']
stringArrayCompleteData['Header']['devicenumber']
stringArrayCompleteData['Header']['departmentemailaddresse']
and much more
但是在我看來,總是不會附加新值,而這些值將被覆蓋。 然后我只有最后的價值。
var stringArray = fullImportContent!.componentsSeparatedByString("\n")
var stringArrayCompleteData = Dictionary<String, Dictionary<String, Any>>()
var arrIndexSection : String = "NoHeader"
for singleRow in stringArray
{
if(singleRow != "")
{
switch singleRow {
case "#Header":
arrIndexSection = singleRow.stringByReplacingOccurrencesOfString("#", withString: "", options: NSStringCompareOptions.LiteralSearch, range: nil)
case "#Objekt":
arrIndexSection = singleRow.stringByReplacingOccurrencesOfString("#", withString: "", options: NSStringCompareOptions.LiteralSearch, range: nil)
case "#Baustelle":
arrIndexSection = singleRow.stringByReplacingOccurrencesOfString("#", withString: "", options: NSStringCompareOptions.LiteralSearch, range: nil)
case "#Auftraggeber":
arrIndexSection = singleRow.stringByReplacingOccurrencesOfString("#", withString: "", options: NSStringCompareOptions.LiteralSearch, range: nil)
case "#Architekt":
arrIndexSection = singleRow.stringByReplacingOccurrencesOfString("#", withString: "", options: NSStringCompareOptions.LiteralSearch, range: nil)
case "#Vermittler":
arrIndexSection = singleRow.stringByReplacingOccurrencesOfString("#", withString: "", options: NSStringCompareOptions.LiteralSearch, range: nil)
case "#Regulierer":
arrIndexSection = singleRow.stringByReplacingOccurrencesOfString("#", withString: "", options: NSStringCompareOptions.LiteralSearch, range: nil)
case "#Versicherung":
arrIndexSection = singleRow.stringByReplacingOccurrencesOfString("#", withString: "", options: NSStringCompareOptions.LiteralSearch, range: nil)
case "#Kontaktstellen":
arrIndexSection = singleRow.stringByReplacingOccurrencesOfString("#", withString: "", options: NSStringCompareOptions.LiteralSearch, range: nil)
case "#Dateien":
arrIndexSection = singleRow.stringByReplacingOccurrencesOfString("#", withString: "", options: NSStringCompareOptions.LiteralSearch, range: nil)
default:
//Here the multiple array would be filled
var arrSingleRow = singleRow.componentsSeparatedByString(";")
if( arrSingleRow.count > 0 )
{
if( arrIndexSection == "Kontaktstellen" )
{
//TODO: Kontaktstellen einlesen
//#Kontaktstellen
//Baustelle;0;348873;;;;0
//Baustelle;0;381263;;Albrecht;0815;0
//Regulierer/SV;0;171979;Josef;Eder;08546/911055;0
println( "Kontaktstellendaten" )
println( singleRow )
}
else if( arrIndexSection == "Dateien" )
{
//TODO: Dateien einlesen
//#Dateien
//11022015090007_BEmail_INNNUE_21102014141534.pdf; 99; Email an eva.nuhn@mbs-service.de
println( "Dateiendaten" )
println( singleRow )
}
else
{
stringArrayCompleteData[arrIndexSection] = [arrSingleRow[0]: arrSingleRow[1]]
//在這里,我嘗試更新值並附加一個值
//stringArrayCompleteData[arrIndexSection]?.updateValue(arrSingleRow[1],forKey:arrSingleRow [0])//錯誤:無法對常量字典進行變異
}
}
}
}
}
println( stringArrayCompleteData )
for key in stringArrayCompleteData.keys {
println("Key: \(key)")
}
這是println()的結果
[Auftraggeber:[Telefon2:],Regulierer:[Telefon2:],Baustelle:[Telefon2:],版本:[Telefon2:01805],標題:[iPadNr:3E24-45B8-A2AC-7E3501BED78A],對象:[Site TesterHinwei ]]
關鍵:Auftraggeber
關鍵:調節器
關鍵:鮑斯特爾
關鍵:Versicherung
關鍵:標題
關鍵:對象
我無法確切地了解您在做什么,但是...為什么您使用的字典是值是另一個字典的字典? 改用Array的字典會更好嗎?
就像是
Dictionary<String, Array<Any>>()
或更好
[String:[Any]]()
這樣,Dictionary的鍵就是“節名”,而Array的值(可以使用.append方法添加)就是這些值。
希望得到幫助,如果不嘗試澄清您希望從代碼中得到什么輸入和輸出,我知道您不是母語人士,但是很難理解這里的真正需求。
再見! D.
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.