我正在尝试初始化斐波那契数字的数组,以便以后可以在表视图中使用它们。现在,这就是我要尝试的方法,但遇到一个问题:在fibonacciNumbers.append()中,“无法使用类型为((Int?)'的参数列表来调用'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
}
}
最佳答案
对于生成器,next()
返回一个可选值。但是,由于生成器的设计宗旨是永不停止生成数字,因此可以安全地使用next()!
。
另一个问题是您的generate()
函数会生成一个Ints生成器,这意味着numbers.next()!
将是一个Int。因此,您的fibonacciNumbers
数组必须为[Int]
。
my own post about Fibonacci Numbers的无耻插头:)