sách gpt4 ai đã đi

ios - NSNotificationCenter - 当观察到的对象被解除分配时移除观察者

In lại 作者:行者123 更新时间:2023-12-01 17:53:31 25 4
mua khóa gpt4 Nike

我使用以下行添加一个观察者:

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(itemDidFinishPlaying) name:AVPlayerItemDidPlayToEndTimeNotification object:self.playerItem];

我的观察者 ( bản thân ) 永远不会被解除分配。

但是当用户开始播放不同的项目时,旧的 self.playerItem将被解除分配——但总是会被一个新的替换,我想继续观察。

当这种情况发生时,我的观察者作为观察者的地位会怎样?我是否需要做一些事情来停止观察已释放的对象,就像 KVO 所要求的那样?或者我会继续观察 self.playerItem处的新天体吗? ?还是我的观察者会自动“未注册”?

如果我需要移除观察者,我想知道为什么没有相应的 removeObserver使人们能够指定选择器的方法;看来我只能通过 removeObserver:(id)notificationObserver 批量删除观察者.

1 Câu trả lời

theo NSNotificationCenter class reference :

Be sure to invoke removeObserver: or removeObserver:name:object: before notificationObserver or any object specified in addObserver:selector:name:object: is deallocated.



所以:你应该在 self.playerItem 之前注销你的观察者解除分配。

But when the user starts playing a different item, the old self.playerItem will be deallocated---but will always be replaced with a new one, which I want to continue observing.



您可以通过 khôngBẰNG addObserver:selector:name:object: 的最后一个参数方法:

Adds an entry to the receiver’s dispatch table with an observer, a notification selector and optional criteria: notification name and sender. If you don't specify

If you pass nil, the notification center doesn’t use a notification’s sender to decide whether to deliver it to the observer.



所以你会收到通知 AVPlayerItemDidPlayToEndTimeNotification来自任何发布它的对象。

关于ios - NSNotificationCenter - 当观察到的对象被解除分配时移除观察者,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22644185/

25 4 0
Bài viết được đề xuất: ios - didUpdateValueForCharacteristic(setNotifyValue:YES)不起作用
Bài viết được đề xuất: java - WriteBytes 在我的文件中写入字符串
Bài viết được đề xuất: ios - 使用 MBProgressHUD 时的内存泄漏
Bài viết được đề xuất: java - 如何在 JSON 文件中搜索
行者123
Hồ sơ cá nhân

Tôi là một lập trình viên xuất sắc, rất giỏi!

Nhận phiếu giảm giá Didi Taxi miễn phí
Mã giảm giá Didi Taxi
Giấy chứng nhận ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com