Filtrar e classificar matriz rápida

Eu tenho uma matriz rápida que eu quero filtrar, aqui está a matriz

let array = [apple,workshops,shopping,sports,parties,pantry,pen] 

Eu quero filtrar a matriz de tal maneira que oitens começando com a sequência de pesquisa a aparecer antes dos itens que contêm apenas a sequência de pesquisa

Então, quando eu procuro por exemplo p, então os resultados devem estar de alguma forma

let array = [parties,pantry,pen,apple,workshops,shopping,sports] 

Eu tentei isso

tagSearchResults = tagSearchResults.filter({ (interestTag:InterestTag) -> Bool in
            let tmp: NSString = interestTag.tag
            let range = tmp.rangeOfString(searchText, options: NSStringCompareOptions.CaseInsensitiveSearch)
            return range.location != NSNotFound
        })

mas isso me dá todas as strings que contêm a string de pesquisa.

Então pessoal, como posso fazer isso

questionAnswers(3)

yourAnswerToTheQuestion