【发布时间】:2015-11-03 17:01:14
【问题描述】:
我有一个“drugList”类型的数组,它们派生自一个结构“DrugsLibrary”:
struct DrugsLibrary {
var drugName = ""
var drugCategory = ""
var drugSubCategory = ""
}
var drugList = [DrugsLibrary]()
//This is the dictionary i'm trying to build:
var dictionary = ["": [""," "]]
我的数据模型是使用这个函数初始化的:
func createDrugsList() {
var drug1 = DrugsLibrary()
drug1.drugName = "drug1"
drug1.drugCategory = "Antibiotics"
drug1.drugSubCategory = "Penicillins"
self.drugList.append(drug1)
var drug2 = DrugsLibrary()
drug2.drugName = "drug2"
drug2.drugCategory = "Antibiotics"
drug2.drugSubCategory = "Penicillins"
self.drugList.append(drug2)
var drug3 = DrugsLibrary()
drug3.drugName = "drug2"
drug3.drugCategory = "Antibiotics"
drug3.drugSubCategory = "Macrolides"
self.drugList.append(drug3)
}
我的问题是我正在尝试从 drugList 创建一个字典,其中键是 drugSubCategory,值是药物名称。如果此子类别中有多种药物,则该值应该是一个数组 例如,本示例中的字典应如下所示:
dictionary = [
"Penicillins": ["drug1","drug2"]
"Macrolides": ["drug3"]
]
我试过这个方法:
for item in drugList {
dictionary["\(item.drugSubCategory)"] = ["\(item.drugName)"]
}
这给出了一个这样的字典,它不能将 drug2 附加到“Penicllins”:
dictionary = [
"Penicillins": ["drug1"]
"Macrolides": ["drug3"]
]
所以我尝试使用这种方法将项目附加到字典中,但它没有附加任何内容,因为数据模型中没有键为 "" 的公共项目:
for item in drugList {
names1[item1.drugSubCategory]?.append(item1.drugName)
}
有人知道将 drug2 附加到字典中的方法吗?
如果在这件事上有任何帮助或建议,我将不胜感激。
【问题讨论】:
标签: ios arrays swift dictionary