首页 > 解决方案 > 如何快速将参数传递给选择器?

问题描述

func addObserver(_ scrollView: UIScrollView) {
  NotificationCenter.default.addObserver(self, selector: #selector(XXX), name:, object:)
}

@objc func getScrollView (_ notification: Notification, useScrollView : UIScrollView) {
 // Doing something for scrollView
 
}

当我调用 addObserver 函数时,我想将 scrollView 传递给 objc 函数 getScrollView。我应该如何修改这两个功能?

标签: swiftselectoraddobserver

解决方案


使用块更简单,比如

private var _observer: Any!  // unsubscribed automatically on deinit

func addObserver(_ scrollView: UIScrollView) {
    _observer = NotificationCenter.default.addObserver(forName: name, 
                object: nil, queue: nil) { notification in
        // ... just use scrollView here
    }
}

推荐阅读