如何使用其他函数初始化类函数?

时间:2015-08-29 17:58:40

标签: ios arrays swift code-generation generator

我试图初始化一个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
  }
}

1 个答案:

答案 0 :(得分:0)

对于生成器,next()返回一个可选值。但是,由于您的生成器设计为永不停止生成数字,因此您可以安全地使用next()!

另一个问题是你的generate()函数产生了一个Ints生成器,这意味着numbers.next()!将是一个Int。因此,您的fibonacciNumbers数组必须为[Int]

my own post about Fibonacci Numbers的无耻插件:)