ios - Swap array values in Swift -



ios - Swap array values in Swift -

i have 3 elements in array contains strings , numbers(as strings)

for eg, array contain elements like

var elementarray:nsarray //"3","2","1","abc"

after sorting becomes

var sortedarray = //"1","2","3","abc"

i want create string first , numbers in last.

expected output should

var sortedarray = //"abc","1","2","3"

how can swap array elements.

note if array has multiple strings , numbers(strings "1","2"). strings(words or characters) should come first , numbers (which should in ascending order)comes last.

so far tried this.

var sortedarray:nsarray = array.sortedarrayusingcomparator({(item1:anyobject!, item2:anyobject!) -> nscomparisonresult in allow comparisonoptions:nsstringcompareoptions = nsstringcompareoptions.caseinsensitivesearch | nsstringcompareoptions.numericsearch | nsstringcompareoptions.widthinsensitivesearch | nsstringcompareoptions.forcedorderingsearch; var str1:string = (item1 string) var str2:string = (item2 string) homecoming str1.compare(str2, options: comparisonoptions, range: str1.startindex ..< str1.endindex, locale: nslocale.currentlocale()) })

which returns result "1","2","3","abc".

but expected output should "abc","1","2","3". how can exchange object in array.

var elementarray = ["1","2","3","abc","def"] sort(&elementarray){ if $0.toint() != nil && $1.toint() != nil{ homecoming $0 < $1 } else if $0.toint() == nil && $1.toint() == nil{ homecoming $0 < $1 } else { homecoming $0 > $1 } }

this should work result "abc" "def" "1" "2" "3"

if result abc 3 2 1 ok,just utilize this

var elementarray = ["1","2","3","abc","def"] sort(&elementarray,>)

this result "def" "abc" "3" "2" "1"

update:

var elementarray:nsarray = ["1","2","3","abc","def"] var sortedarray:nsarray = elementarray.sortedarrayusingcomparator({(item1:anyobject!, item2:anyobject!) -> nscomparisonresult in allow comparisonoptions:nsstringcompareoptions = nsstringcompareoptions.caseinsensitivesearch | nsstringcompareoptions.numericsearch | nsstringcompareoptions.widthinsensitivesearch | nsstringcompareoptions.forcedorderingsearch; var str1:string = (item1 string) var str2:string = (item2 string) if str1.toint() != nil && str2.toint() != nil{ homecoming str1.compare(str2, options: comparisonoptions, range: str1.startindex ..< str1.endindex, locale: nslocale.currentlocale()) } else if str1.toint() == nil && str2.toint() == nil{ homecoming str1.compare(str2, options: comparisonoptions, range: str1.startindex ..< str1.endindex, locale: nslocale.currentlocale()) } else { homecoming str2.compare(str1, options: comparisonoptions, range: str1.startindex ..< str1.endindex, locale: nslocale.currentlocale()) } })

ios sorting swift

Comments

Popular posts from this blog

assembly - What is the addressing mode for ld, add, and rjmp instructions? -

vowpalwabbit - Interpreting Vowpal Wabbit results: Why are some lines appended by "h"? -

Is there a way to convert an HTML page styled with Bootstrap CSS into email-compatible html? -