2016년 2월 15일 월요일

swift Array Filter 사용하기

swift 에서 key valeu를 저장 하는 Array를 TableView로 적잘한  cell에 UI 컴퍼넌트들과 연결 하여 데이터를 보여 주고 있다고 할 때

여러 리스트 중에 특정한 값 만을 표시 하는 경우가 있다.

예를 들어 결재 내역에서 point 라는 항목을 전체 표시
차감만 표시
적립만 표시

해야 하는 경우는

ex)

    var mileageData = [
        ["point":"save", "price":"7000", "datetime":"2016.01.08 16:50", "message":"관리자가 마일리지 부여"],
        ["point":"used", "price":"10000", "datetime":"2016.01.08 16:50", "message":"관리자가 마일리지 부여"],

    ]


여기서 point key의 save만 , used만을 필터 처리 하고 싶은 경우가 있다.


filter() 메소드를 이용하면 된다.


        if filterButtons[0].selected == true { //전체
            mileageData = mileageDataOrigin
            
        } else if filterButtons[1].selected == true { //적립
            mileageData = mileageDataOrigin.filter({
                $0["point"] == "save"
            })
        } else { //차감
            mileageData = mileageDataOrigin.filter({
                $0["point"] == "used"
            })
        }
        tableView.reloadData()

위 코드는 mileageDataOrigin 으로 부터 mileageData Array를 point 키의 값을 기준으로 
필터 처리를 하여 재구성 하는 코드이다.

tableView.relaodData()를 이용하여 테이블뷰의 데이터를 새로 갱신 하면 변경된 데이터가 표시 된다.

댓글 없음: