Realm을 사용하다보니 테이블뷰를 갱신할 일이 생겼다.
그런데 샘플로 참고하는 코드에서 테이블뷰를 갱신하면서 map을 사용하는 것이다. 처음에는 도대체 이게 뭔지 몰라서 한참 고민했는데 여기저기 검색하다보니 알게 되었다.
func rightBarButtonPressed() { filterDate = NSCalendar.currentCalendar().dateByAddingUnit(.Day, value: -1, toDate: filterDate, options:NSCalendarOptions(rawValue: 0))! dateFormatter.dateFormat = "yyyy.MM.dd" let colDate = dateFormatter.stringFromDate(filterDate) filterDate = dateFormatter.dateFromString(colDate)! let realms = Realms() let predicate = NSPredicate(format: "playdt >= %@", filterDate) results = realms.retreiveTB_RESULTLOG(predicate) let countResults = results.count if prevCountResults != countResults { if prevCountResults == 0 { prevCountResults = countResults } else { var insertions: [Int] = [] for ii in prevCountResults..<countResults { insertions.append(ii) } tableView.beginUpdates() tableView.insertRowsAtIndexPaths(insertions.map { NSIndexPath(forRow: $0, inSection: 0) }, withRowAnimation: .Automatic) tableView.endUpdates() prevCountResults = countResults } } else { let util = Util() self.presentViewController(util.alert("알림", message: "더 이상 데이터가 없습니다", ok: "확인", cancel: nil), animated: true, completion: nil) } }
Navi Bar의 오른쪽 버튼을 눌렀을 때 하루치 더 조회하고 그 결과를 테이블뷰에 반영하는 소스이다.