【问题标题】:Swift 3 to Swift 4 kishikawakatsumi/SpreadsheetViewSwift 3 到 Swift 4 kishikawakatsumi/SpreadsheetView
【发布时间】:2017-07-06 15:05:58
【问题描述】:

我正在使用第三方库,但遇到了我不理解的错误(我是 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'类型的返回表达式”

在最后一行我收到了这个错误:

“对成员'makeIterator()'的不明确引用”

我还有这个:

let mergedCells = dataSource.mergedCells(in: self)
let mergedCellLayouts: [Location: CellRange] = { _ in
    var layouts = [Location: CellRange]()

在这里我得到了这个错误:

“无法将类型'(_) -> _'的值转换为指定类型'[Location : CellRange]'”

有什么想法吗?我做了一些研究,但我无法解决这个问题。

【问题讨论】:

    标签: swift xcode9-beta


    【解决方案1】:

    此问题已在 0.7.3 修复。请使用最新版本。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-01-08
      • 2019-02-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-04-06
      相关资源
      最近更新 更多