2016. 8. 29. 17:41ㆍProgramming/Swift
var section1 = ["100","1","a","나","ㄱ","2","k","ㅎ","10","가"] let order = section1.sort() { (s1, s2) -> Bool in
if(s1 < "A" && s2 < "A") { // 둘 다 숫자이면 return s1.localizedStandardCompare(s2) == NSComparisonResult.OrderedAscending
} else if (s1 >= "A" && s2 >= "A" && s1 <= "z" && s2 <= "z") { // 둘다 영문이면 return s1.localizedStandardCompare(s2) == NSComparisonResult.OrderedAscending } else if(s1 > "z" && s2 > "z") { // 둘 다 한글 이면 return s1.localizedStandardCompare(s2) == NSComparisonResult.OrderedAscending } else { //둘 중에 하나라도 같은 타입이 아니면 return s1.localizedStandardCompare(s2) == NSComparisonResult.OrderedDescending } } |
위 빨간색으로 칠한 문은 지역로컬이 지정되지 않아 무조건 영문이 우선순위로 소팅이 될 것이다.
한글부터 sort하고 자 한다면 이렇게 하자.
let locale = NSLocale(localeIdentifier: "korea") return s1.compare(s2, locale: locale) == NSComparisonResult.OrderedDescending |
'Programming > Swift' 카테고리의 다른 글
app심사 및 itunes connect 사용법 링크 (0) | 2016.09.01 |
---|---|
tabbar에서 tableview 사용시 마지막 로우가 tabbar에 가려질 때 (0) | 2016.08.30 |
[Firebase] firebase/crash 설정 (0) | 2016.08.27 |
[AdMob] 내가 만든 앱에 배너광고 넣기 (0) | 2016.08.26 |
UIViewController 라이프사이클 다이어그램 (0) | 2016.08.22 |