我正在尝试初始化斐波那契数字的数组,以便以后可以在表视图中使用它们。现在,这就是我要尝试的方法,但遇到一个问题:在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的无耻插头:)

07-26 09:39