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
Post a Comment