我有Workout
类Difficulty
财产如何通过枚举值对对象进行排序?
enum Difficulty: String {
case easy = "easy"
case moderate = "moderate"
case hard = "hard"
}
class Workout {
var name: String?
var difficulty: Difficulty?
.
.
.
}
我想用难度属性进行排序锻炼的数组。我知道我可以通过指定枚举的原始值,以int值实现这一点,如下比较这些值:
data.sort { $0.workout.difficulty!.rawValue < $1.workout.difficulty!.rawValue }
但我真的希望这个枚举存储字符串,因为它的方便,它分配给标签文本上下行没有丑陋的开关箱黑客攻击,并且在某种程度上具有可比性。
如何实现这一目标?
您可以使用枚举hashValue。顺便说一句你应该使用结构而不是类。和Igor的建议类似,你可以让你的结构具有可比性,而不是让枚举具有可比性。 –
Btw定义一个字符串值与枚举值相同是多余的 –
@LeoDabus感谢您的建议,能否提供完整的示例作为答案? – DCDC