我正在使用第三方库,但遇到了我不理解的错误(我是 Swift 新手)。
这是代码:
final class ReusableCollection<Reusable>: Sequence where Reusable: NSObject {
var pairs = [Address: Reusable]()
var addresses = Set<Address>()
var objects: LazyMapCollection<[Address: Reusable], Reusable> {
return pairs.values
}
func contains(_ member: Address) -> Bool {
return addresses.contains(member)
}
@discardableResult
func insert(_ newMember: Address) -> (inserted: Bool, memberAfterInsert: Address) {
return addresses.insert(newMember)
}
func subtract(_ other: Set<Address>) {
addresses.subtract(other)
}
subscript(key: Address) -> Reusable? {
get {
return pairs[key]
}
set(newValue) {
pairs[key] = newValue
}
}
func makeIterator() -> LazyMapIterator<DictionaryIterator<Address, Reusable>, Reusable> {
return pairs.values.makeIterator()
}
在return pairs.values
我收到此错误:
“无法将 'Dictionary.Values' 类型的返回表达式转换为返回类型 'LazyMapCollection<[Address : Reusable], Reusable>'”
在最后一行我收到了这个错误:
“对成员 'makeIterator()' 的模糊引用”
此外,我还有这个:
let mergedCells = dataSource.mergedCells(in: self)
let mergedCellLayouts: [Location: CellRange] = { _ in
var layouts = [Location: CellRange]()
在这里我收到了这个错误:
“无法将 '(_) -> _' 类型的值转换为指定类型 '[Location : CellRange]'”
任何想法?我已经进行了一些研究,但我无法解决这个问题。