我有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