में स्थानीयकृत स्ट्रिंग के साथ एनम, मैं स्थानीयकृत स्ट्रिंग के साथ गणना का उपयोग करना चाहता हूं, इसलिए मुझे यह पसंद है, यह काम करता है, लेकिन इस समाधान की समस्या है: मुझे स्थानीयकृत स्ट्रिंग से आसानी से एनम मान नहीं मिल सकता है, मुझे अवश्य ही enum मूल्य प्राप्त करने के ...स्विफ्ट
let option = DietWithoutResidueOption(rawValue: "NoDiet")
यदि नहीं मैं dietWithoutResidueOptionWith विधि कॉल करने चाहिए: यह करने के लिए कुंजी है/
वहाँ सीधे enum में localizedString और नहीं चाबियाँ स्टोर करने के लिए एक बेहतर समाधान कर रहे हैं?
धन्यवाद
गणन
enum DietWithoutResidueOption: String {
case NoDiet = "NoDiet"
case ThreeDays = "ThreeDays"
case FiveDays = "FiveDays"
private func localizedString() -> String {
return NSLocalizedString(self.rawValue, comment: "")
}
static func dietWithoutResidueOptionWith(#localizedString: String) -> DietWithoutResidueOption {
switch localizedString {
case DietWithoutResidueOption.ThreeDays.localizedString():
return DietWithoutResidueOption.ThreeDays
case DietWithoutResidueOption.FiveDays.localizedString():
return DietWithoutResidueOption.FiveDays
default:
return DietWithoutResidueOption.NoDiet
}
}
}
Localizable.strings
"NoDiet" = "NON, JE N'AI PAS DE RÉGIME";
"ThreeDays" = "OUI, SUR 3 JOURS";
"FiveDays" = "OUI, SUR 5 JOURS";
कॉल
println(DietWithoutResidueOption.FiveDays.localizedString())
आपको स्ट्रिंग के स्थानीय संस्करणों को 'Localizable.strings' में जोड़ना नहीं भूलना चाहिए, अन्यथा कोई अनुवादित संस्करण नहीं होगा। – NerdyTherapist