2016-11-12 3 views
0

Рассмотрим этот массив:Swift 3: сортировать массив имен файлов независимо от расширения

let files = ["file2.tif", "file33.jpg", "file11.jpg"] 

Я хотел бы отсортировать этот массив, так что результат будет

sortedFiles = ["file2.tif", "file11.jpg", "file33.jpg"] 

Есть две проблемы здесь, что я не знаю, как подойти:

1) как игнорировать расширение файла при сортировке

2) как убедиться в том, что «file2» ставится перед «file11»

Большое вам спасибо за ваши идеи

ответ

1

Опцион является приведение строки в NSString и использовать методы Foundation deletingPathExtension и compare:options:.numeric

let files = ["file2.tif", "file33.jpg", "file11.jpg"] 

let sortedFiles = files.sorted(by: { 
    return ($0 as NSString).deletingPathExtension.compare(($1 as NSString).deletingPathExtension, options: .numeric) == .orderedAscending 
}) 
+0

Прохладный. Я дам ему попробовать – Sjakelien

+0

Спасибо, место на! – Sjakelien

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