我刚刚将Swift 3.1项目从Xcode 8.3.3迁移到Swift 4 / Xcode 9 GM。我设法解决了大多数编译器警告,但是这个警告,我找不到任何与此相关的信息。代码在Xcode 8.3.3中编译时没有警告。我正在使用片段来说明问题。
警告确切警告是
FirebaseArrayDelegate.swift:22:26:
Redundant conformance constraint 'T': 'FirebaseModel'
并与func initialized
(第三行)的声明有关。
public protocol FirebaseArrayDelegate: class {
func update(with block: (()->Void)?)
func initialized<T : FirebaseModel>(array: FirebaseArray<T>)
func added<T : FirebaseModel>(child: T, at index: Int)
func changed<T : FirebaseModel>(child: T, at index: Int)
func removed<T : FirebaseModel>(child: T, at index: Int)
func moved<T : FirebaseModel>(child: T, from oldIndex: Int, to newIndex: Int)
func changedSortOrder()
func cancelled(with error: Error)
}
FirebaseModel定义为
public protocol FirebaseModel: AnyObject, Equatable {
init?(snapshot: DataSnapshot)
var key: String { get }
var ref: DatabaseReference { get }
}
和FirebaseArray为
open class FirebaseArray<T : FirebaseModel>: NSObject, Collection
知道什么可能导致此警告,或者这可能是Xcode 9 GM中的错误?谢谢!