Ios 将值对追加到字典键

Ios 将值对追加到字典键,ios,xcode,swift,Ios,Xcode,Swift,我正在读一个包含许多部分的文本文件。我想要一本像这样的字典: stringArrayCompleteData['Objekt']['Mobile'] stringArrayCompleteData['Objekt']['address'] stringArrayCompleteData['Header']['devicenumber'] stringArrayCompleteData['Header']['departmentemailaddresse'] and much more

我正在读一个包含许多部分的文本文件。我想要一本像这样的字典:

stringArrayCompleteData['Objekt']['Mobile']    
stringArrayCompleteData['Objekt']['address']
stringArrayCompleteData['Header']['devicenumber']
stringArrayCompleteData['Header']['departmentemailaddresse']
and much more
但在我的loob中,总是不会附加新值,而是会覆盖这些值。然后我只有最后一个值

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]]
以下是println()的结果

[Auftraggeber:[Telefon2:],监管人:[Telefon2:],Baustelle:[Telefon2:],版本:[Telefon2:01805],标题:[iPadNr:3E24-45B8-A2AC-7E3501BED78A],对象:[Weitererynweis:Test]]

钥匙:奥夫特拉格伯

关键词:调节器

钥匙:鲍斯特勒

关键字:Versicherung

关键字:标题

关键字:Objekt


我不能确切地理解你在做什么,但是。。。如果值是另一个字典,为什么要使用字典?使用数组字典不是更好吗

差不多

 Dictionary<String, Array<Any>>()
这样,字典的键就是“节名”,数组的值(可以使用.append方法添加)就是这些值

希望这能帮助你,如果你不想澄清你希望从你的代码中得到什么样的输入和输出,我知道你不是一个母语为英语的人,但是很难理解你真正需要什么

再见! D

 Dictionary<String, Array<Any>>()
   [String:[Any]]()