2015-10-16 2 views
1

Мне нужно сравнить 2 строки, представляющие версии, такие как 1.2.4 и 2.3.6. Хотелось бы узнать, существует ли уже такая же реализация в swift. Возможно, что-то похожее на функцию systemInfo для . Если нет, то, на ваш взгляд, хороший способ выполнить эту проверку?Лучший способ сравнить строки «версии» в Swift

+0

ссылаются, вопрос был первоначально для Objective-C, но имеет [Swift ответ] (http://stackoverflow.com/a/29230214/ 1187415). –

+0

Я видел только ответ Objective-C, позор на меня:/ – MatterGoal

ответ

4

Хороший способ является compare: метод с опцией .NumericSearch

let version1 = "1.2.4" 
let version2 = "2.3.6" 

let result = version1.compare(version2, options: .NumericSearch) 
switch result { 
case .OrderedSame : print("versions are equal") 
case .OrderedAscending : print("version1 is less than version2") 
case .OrderedDescending : print("version1 is greater than version2") 
} 
+0

Он работает. Однако я нашел эту странную проблему. ЕСЛИ я сравниваю 2.0 с 2.0.0, эта функция возвращает 2.0.0 больше, чем 2.0 – MatterGoal

+0

Да, но обычно номера версий с незначительным значением и значением патча нуля отображаются как x.0, а не x.0.0 и x.0.1> x .0 правильно распознан. – vadian

Смежные вопросы