0
我正在研究解析來自Web服務的XML響應的應用程序。該Web服務將使用對象堆棧來返回多個不同類型對象的多個實例。我只想把這些對象和他們填充到一個數組中。現在我有一個開關,它基於「objectStack.last」類型重複幾行不同的類似代碼。這是什麼樣子,現在的XML解析器的parserDidEndElement功能:Swift:使用變量修改數組以指定數組名稱
switch(objectStack.last){
case _ as apple:
apples.removeAll()
for apple in objectStack as! [apple]{
apples.append(apple.name.value)
objectType = "apple"
}
case _ as orage:
oranges.removeAll()
for orange in objectStack as! [orange]{
oranges.append(orange.name.value)
}
objectType = "orange"
case _ as bananas:
bananas.removeAll()
for banana in objectStack as! [banana]{
bananas.append(banana.name.value)
}
objectType = "banana"
case default:
break
的問題是,Web服務將返回大量不同類型的,我寧可不要建立一個開關每個案件。爲了討論的目的,假設我已經爲每種類型創建了一個空數組,只需在類型名稱中添加「s」(即蘋果,桔子和香蕉)即可。有沒有辦法讓我使用變量來操作數組?事情是這樣的:
objectStack.last + "s".removeAll()
for objectStack.last in objectStack.last + "s" as! [objectStack.last]{
objectStack.last + "s".append(objectStack.last.name.value)
objectType = objectStack.last
}
顯然,這第二個代碼塊是無效的代碼,我只是希望這有助於說明什麼,我試圖完成。
在此先感謝您的幫助!
將em放在字典中是最明顯的答案 –
@DavidBerry那將是什麼樣子? – GED125