无法调用类型为'Int'的参数列表类型为'()'的初始化程序

问题描述:

我在项目中使用了CVCalendar,并且我已将Xcode更新为8.0 Beta。问题是我在一个文件接收错误说:无法调用类型为'Int'的参数列表类型为'()'的初始化程序

1)不能调用初始化程序与 类型的参数列表类型'诠释“()”

2)参数标签“(身体:)”不匹配任何可用的重载

// MARK: - SequenceType 

private var storage = [T]() 

extension CVSet: Sequence { 
    public func makeIterator() -> AnyIterator<T> { 
     var power = 0 
     let nextClosure :() -> T? = { 

      (power < self.count) ? self.storage[Int(power += 1)] : nil //Getting error here self.storage[Int(power += 1)] 
     } 
     return AnyIterator(body: nextClosure) 
    } 
} 

+=经营者有这样的类型(Int, Int) -> _,这意味着它的返回类型为_/()/void。即,该函数不返回任何东西。

因此,表达式Int(power += 1)Int()相同,这是无效的。

这样做是为了防止隐藏在大型表情中的恶劣副作用。尝试改为:

if (power < self.count) { 
    power += 1 
    return self.storage[power] 
} 
else { 
    return nil 
}