【发布时间】:2017-02-26 21:38:38
【问题描述】:
我正在尝试用部分品牌名称填写表格视图。
现在我有这本词典
var manNames = ["A":["ABERCROMBIE & FITCH MEN","ACQUA DI PARMA MEN","ADAM LEVINE ΜΕΝ","AIGNER MEN","ANTONIO BANDERAS MEN","ARAMIS MEN","ARMANI GIORGIO MEN","AZZARO MEN"],"B":["BALDESSARINI MEN","BALDININI MEN","BENTLEY MEN","BOTTEGA VENETA MEN","BOUCHERON MEN","BREIL MILANO MEN","BRUT MEN","BURBERRY MEN","BVLGARI MEN"]]
在这个结构中符合什么
struct Objects {
var sectionName : String!
var sectionObjects : [String]!
}
拥有这个空的对象字典
var objectArray = [Objects]()
I fill it in with the following for loop
let sortedNames = atoz.manNames.sorted(by: { $0.0 < $1.0 })
for (key, value) in sortedNames {
objectArray.append(Objects(sectionName: key, sectionObjects: value))
}
然后我在表格中填充数据,到目前为止一切正常。
在 cellForRowAt 中,这是我取每个品牌名称的方式
cell.companyName.text = objectArray[indexPath.section].sectionObjects[indexPath.row]
我想要实现的是让每个品牌名称都有自己的ID,所以当函数didSelectRowAt被执行时,我想把这个ID发送到下一个视图控制器,而不是名称品牌。
更准确地说。
AMBERCOMBIE has the ID 40
ACQUA DI PARMA has the ID 200
等等
如何为每个品牌名称编辑我现有的字典,使其拥有自己的 ID,然后从数组 objectArray 中获取它???
【问题讨论】:
-
您的“数组”不是数组。这是一个
[String : [String]]字典。 -
@Fogmeister 你是对的,我现在将进行编辑。我的错。
-
另外,为什么不把名字发过去呢?当其他视图控制器接收到唯一 id 时,你会如何处理它?
-
@Fogmeister 在我的 API 发出请求。这些字典将是动态的,这就是为什么我要发送 ID 而不是名称
-
在那种情况下,我根本不会将它存储在这样的字典中。存储一个对象数组(不是字符串)并给每个对象一个名称和一个 ID。
标签: arrays swift dictionary swift3