2014-12-03 60 views
0

我的问题是:我有一个枚举类型为键和名为元组作为值的字典。元组作为字典值

private let positionDictionary:[Position:(shortG: String, longG: String, shortE: String, longE: String)] = 
[ .Goalkeeper:("TW","Torwart","GK","Goalkeeper"), 
    .CentralDefender:("IV","Innenverteidiger","CD","Central Defender"), 
    .LeftBack:("LV","Linker Verteidiger","LB","Left Back"), 
    .LeftWingBack:("LAV","Linker Außenverteidiger","LWB","Left Wing Back"), 
    .RightBack:("RV","Rechter Verteidiger","RB","Right Back"), 
    .RightWingBack:("RAV","Rechter Außenverteidiger","RWB","Right Wing Back")] 

这就是我想要做的这个类的一部分:

self.positionDictionary[.Goalkeeper].shortE 

但是,编译器告诉我,他“找不到成员‘shortE’”。我错过了什么?我真的很感激任何帮助:]

回答

2

字典键下标返回可选值。你需要解开,或使用可选的招标:

if let goalkeepersShortE = self.positionDictionary[.Goalkeeper]?.shortE { 
    // ... 
} 
+0

或'self.positionDictionary [.Goalkeeper]!shortE' – Mateusz 2014-12-03 14:07:39

+0

不要用以前的评论。如果字典中没有包含key的值,守门者会在运行时崩溃。总是检查你的选择权。 – kap 2014-12-03 14:25:33