2017-07-06 83 views
1

我正在使用第三方库,并且出现了我不明白的错误(我是Swift新手)。Swift 3 Swift 4 kishikawakatsumi/SpreadsheetView

下面的代码:

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我得到这个错误:

"Cannot convert return expression of type 'Dictionary.Values' to return type 'LazyMapCollection<[Address : Reusable], Reusable>'"

而且在最后一行我得到这个错误:

"Ambiguous reference to member 'makeIterator()'"

此外我还有:

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

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

"Cannot convert value of type '(_) -> _' to specified type '[Location : CellRange]'"

任何想法?我做了一些研究,但我一直无法解决这个问题。

回答

1

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