我的函数swift 2

时间:2016-01-06 09:28:14

标签: swift swift2

我有一个使用swift 1编写的项目,但现在我使用Xcode 7.2(swift 2)运行 但我不知道为什么我会犯很多错误。

我可以解决前一个问题中的一个问题,但我遇到了大问题而且我太累了。

这是我的代码:

public func generate() -> AnyGenerator <(String, JSON)> {
        switch self.type {
        case .Array:
            let array_ = object as! [AnyObject]
            var generate_ = array_.generate()
            var index_: Int = 0
            return AnyGenerator<(String, JSON)> {
                if let element_: AnyObject = generate_.next() {
                    return ("\(index_++)", JSON(element_))
                } else {
                    return nil
                }
            }
        case .Dictionary:
            let dictionary_ = object as! [String : AnyObject]
            var generate_ = dictionary_.generate()
            return AnyGenerator<(String, JSON)> {
                if let (key_, value_) = generate_.next() {
                    return (key_, JSON(value_))
                } else {
                    return nil
                }
            }
        default:
            return AnyGenerator<(String, JSON)> {
                return nil
            }
       }
 }

请指导我这些错误!!! enter image description here

1 个答案:

答案 0 :(得分:0)

在Swift 2中,全局函数

public func anyGenerator<Element>(body: () -> Element?) -> AnyGenerator<Element>

用于从给定的(类型擦除的)生成器创建 封闭:

public func generate() -> AnyGenerator <(String, JSON)> {

    // ...
    return anyGenerator {
        if let element_: AnyObject = generate_.next() {
            return ("\(index_++)", JSON(element_))
        } else {
             return nil
        }
    }
}