我有一个使用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
}
}
}
答案 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
}
}
}