black tiger
black tiger

Reputation: 123

I got many errors in my function swift 2

I have one project that write with swift 1 but now I run with Xcode 7.2 (swift 2) but I don't know why I got many errors.

I can fix one problem in my previous question but I have big problem and I so tired.

this is my code :

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
            }
       }
 }

please guide me about these errors!!! enter image description here

Upvotes: 0

Views: 241

Answers (1)

Martin R
Martin R

Reputation: 540135

In Swift 2, the global function

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

is used to create a (type-erased) generator from a given closure:

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

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

Upvotes: 0

Related Questions