[2] KVO

作者: coderzcj | 来源:发表于2017-12-08 10:37 被阅读13次
import UIKit

class NewsAPI: NSObject {
    
    static let service = NewsAPI()
    
    @objc dynamic private(set) var articles: [String] = []

    func fetchArticles(for source: String) {
        
    }
    
    func resetArticles() {
    }
    
}

class ArticleListController: UITableViewController {
    
    var source: String?
    
    private var token: NSKeyValueObservation?
    
    override func viewDidAppear(_ animated: Bool) {
        super.viewDidAppear(animated)
        guard let source = source else { return }
        
        /*
         let path1 = #keyPath(NewsAPI.articles)
         let path2 = \NewsAPI.articles
         let path3 = \.articles
         */
        token = NewsAPI.service.observe(\.articles) {
            _, _ in
            DispatchQueue.main.async {
                self.tableView.reloadData()
            }
        }
        NewsAPI.service.fetchArticles(for: source)
    }
    
    override func viewDidDisappear(_ animated: Bool) {
        super.viewDidDisappear(animated)
        token?.invalidate()
        NewsAPI.service.resetArticles()
    }
    
}

相关文章

  • 20.iOS底层学习之KVO 原理

    本篇提纲1、KVO简介;2、KVO的使用;3、KVO的一些细节;4、KVO的底层原理; KVO简介 KVO全称Ke...

  • 驳杂的知识点

    { KVO原理 2个方法 addObsever obsevervalueforkeypaths kvo是用runt...

  • iOS runtime自定义实现KVO

    1、了解KVO 打印结果: 2、自定义实现KVO .h .m

  • KVC/ KVO

    1、kvc原理: 45页 2、自定义KVO KVO参考链接 KVO默认观察setter,使用isa-swizzli...

  • KVO的发现

    1.什么是KVO KVO (key value observer) 观察者模式, 监听对象属性的变化 2.KVO的...

  • 面试题(2)

    runtime/KVO等面试题 1.KVO内部实现原则 回答:1>KVO是基于runtime机制实现的 2>当某个...

  • iOS-KVO相关

    KVO相关 一、KVO初探 — 响应观察 (一)KVO 使用 的 三部曲 1、添加观察 2、响应 3、析构 (...

  • iOS-设计一个在dealloc中自动移除KVO的分类

    KVO在项目中使用很多,主要是两种原因会使KVO崩溃 1、KVO没有被移除 2、KVO移除的次数比添加的次数多 设...

  • KVC,KVO

    主要分成一下几个部分1.KVC1.1 KVC简介1.2 KVC使用2.KVO2.1 KVO简介2.2 KVO使用 ...

  • RxSwift之KVO

    KVO三板斧 RxSwift的KVO封装 1.rx.observe:高效,它是一个 KVO 机制的简单封装。 2....

网友评论

      本文标题:[2] KVO

      本文链接:https://www.haomeiwen.com/subject/zcteixtx.html