如何比较AVPlayerItem

问题描述 投票:0回答:1

我是 swift 新手。

这是来自此示例 becoming_a_now_playable_app 的代码,位于

AssetPlayer
handlePlayerItemChange()
方法中。

guard let currentIndex = playerItems.firstIndex(where: { $0 == currentItem }) else { return } 

这里,

playerItems
AVPlayerItem
的数组,
currentItem
AVPlayerItem

我无法理解这段代码是如何工作的。

isEqual()
如何可能
AVPlayerItem
?我在
isEqual()
找不到任何重写的方法,例如
hash()
AVPlayerItem

swift avfoundation avplayeritem
1个回答
0
投票

对于 NSObject 子类,

isEqual()
的默认实现是指针相等,在 Swift 中表示为
===
。因此,如果任何两个 NSObject 是同一个对象,那么它们就相等,这就是这里发生的情况。

© www.soinside.com 2019 - 2024. All rights reserved.