Raf*_*ffi 5 nsnotificationcenter ios swift swift3
我已经尝试了所有AVPlayerItem通知,但没有运气......当通知应该发布时没有发生任何事情。
我正在尝试从 WKWebView 中的网站下载视频
这是我的代码,它位于 swift 3.0 中
override func viewDidLoad() {
super.viewDidLoad()
NotificationCenter.default().addObserver(self, selector: #selector(self.downloadAudioVisualItem), name: NSNotification.Name.AVPlayerItemNewAccessLogEntry, object: nil)
}
func downloadAudioVisualItem() {
print("Hello")
}
override func viewDidDisappear(_ animated: Bool) {
super.viewDidDisappear(false)
NotificationCenter.default().removeObserver(self)
}
Run Code Online (Sandbox Code Playgroud)
小智 0
看来您在添加观察者之前就调用了 postNotification。我的意思是应该首先调用观察者,以便只有它才能开始监听通知。
试试这个App Delegate
import AVFoundation
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
let MyGreatNotification = Notification.Name.AVPlayerItemNewAccessLogEntry
NotificationCenter.default().addObserver(self, selector: #selector(self.hello), name: MyGreatNotification, object: nil)
return true
}
func hello()
{
// Put break point here
}
Run Code Online (Sandbox Code Playgroud)
并在您的初始视图控制器中添加发布通知代码,如下所示。
import AVFoundation
override func viewDidLoad() {
super.viewDidLoad()
let MyGreatNotification = Notification.Name.AVPlayerItemNewAccessLogEntry
NotificationCenter.default().post(name: MyGreatNotification, object: self)
}
Run Code Online (Sandbox Code Playgroud)
就是这样,尝试运行您的应用程序,您可以看到该应用程序将在function指定的hello位置中断App Delegate位置中断。
如果您还不确定。执行此操作,放入此发布通知代码App Delegate,并将添加观察者代码放入初始视图控制器中,添加选择器并在其中放置一个断点,尝试运行应用程序。您可以看到应用程序没有在初始视图控制器中的断点处中断。
| 归档时间: |
|
| 查看次数: |
1345 次 |
| 最近记录: |