puuurm / swift-weatherforecast

iOS app
1 stars 0 forks source link

Notification 적용하도록 변경 (Data Insert, Delete, Update) #21

Closed puuurm closed 6 years ago

puuurm commented 6 years ago
  1. 백그라운드에서 다시 실행될 때, 시간정보와 위치정보가 업데이트 되도록 Notification Post한다.
    func applicationDidBecomeActive(_ application: UIApplication) {
        NotificationCenter.default.post(name: Notification.Name.DidUpdateTime, object: self)
        NotificationCenter.default.post(name: Notification.Name.DidUpdateUserLocation, object: self)
    }
  2. 시간 정보의 변동은 모든 테이블 뷰에 적용되므로 테이블 뷰를 리로드한다.
  3. 날씨 정보의 변동에 대해서는 테이블의 특정 인덱스 로우만 insert, reload, delete 한다.
    @objc func updateCurrent(notification: Notification) {
        guard let userInfo = notification.userInfo,
            let index = userInfo["index"] as? Int else {
                return
        }
        let indexPath = IndexPath.init(row: index, section: 0)
        DispatchQueue.main.async { [weak self] in
            self?.weatherTableView.reloadRows(at: [indexPath], with: .automatic)
        }
    }