如何解决 Swift 警告:"Constant 'value' inferred to have type 'AnyClass?' (aka 'Optional<AnyObject.Type>'), which may be unexpected"?

How to solve Swift warning: "Constant 'value' inferred to have type 'AnyClass?' (aka 'Optional<AnyObject.Type>'), which may be unexpected"?

无法弄清楚为什么编译器会抛出此警告

知道如何解决吗?

func configure(with classesReuseRegistry: [String: AnyClass?]) {
    var collectionView = UICollectionView() // Temp collection var for testing purposes
    
    for (key, value) in classesReuseRegistry {
        collectionView.register(value, forCellWithReuseIdentifier: key)
    }
}

我也想澄清一下,这个警告以前没有出现过。我在 this library 上有类似的代码,这从来都不是问题。

您可以通过将代码修改为以下方式来消除警告:

func configure(with classesReuseRegistry: [String: AnyClass?]) {
    var collectionView = UICollectionView() // Temp collection var for testing purposes
    
    for classDict in classesReuseRegistry {
        collectionView.register(classDict.value, forCellWithReuseIdentifier: classDict.key)
    }
}

我认为警告是由于 AnyClass 作为字典值的类型别名,而不是像 Int、String、...

这样的值类型引起的