我试图初始化一个Fibonacci数字,以便稍后在tableview中使用它们。现在,这就是我尝试这样做的方式,但却遇到了问题:"无法调用'追加'参数列表类型为'(Int?)'"在fibonacciNumbers.append()
class FibonacciNumbers {
class func getTheFibonacciNumbers(allResults: NSArray) -> [FibonacciNumbers] {
// Create an empty array of Fibonacci Numbers to append to from this list
var fibonacciNumbers = [FibonacciNumbers]()
var number = generate()
// Store the results in our table data array
if allResults.count>0 {
for result in allResults {
fibonacciNumbers.append(number.next()) //Getting issue here
}
}
return fibonacciNumbers
}
}
func generate() -> GeneratorOf<Int> {
var current = 0, next = 1
return GeneratorOf<Int> {
var ret = current
current = next
next = next + ret
return ret
}
}
答案 0 :(得分:0)
对于生成器,next()
返回一个可选值。但是,由于您的生成器设计为永不停止生成数字,因此您可以安全地使用next()!
。
另一个问题是你的generate()
函数产生了一个Ints生成器,这意味着numbers.next()!
将是一个Int。因此,您的fibonacciNumbers
数组必须为[Int]
。