2016-12-19 175 views
4

序列类型为SWIFT 2.2我用这个Generator.Element在斯威夫特3

extension SequenceType where Generator.Element == Character { 

} 

,但是当我想转换成斯威夫特3我必须使用的 Sequence代替SequenceType

extension Sequence where Generator.Element == Character { 

} 

yeilds

使用未声明的类型“发电机”的

那么,如何才能解决这个问题呢?

+0

见例如https://github.com/apple/swift-evolution/blob/master/proposals/0006-apply-api-guidelines-to-the-standard-library.md:*“发电机”的概念被重新命名为“迭代器“跨越所有API。”* –

+0

@MartinR,谢谢。由于没有提供任何建议,我感到困惑。 – Vyacheslav

+0

您是否尝试过在Xcode中编辑 - >转换 - >到当前Swift语法?它应该自动修复。 –

回答

10

Swift 3语言概率的概述可在 https://swift.org/blog/swift-3-0-released/找到。

这种特殊的变化 是SE-0006 Apply API Guidelines to the Standard Library部分:

“发电机”的概念被重新命名为“迭代”在所有的API。

所以您的扩展必须定义为

extension Sequence where Iterator.Element == Character { 

} 
+0

对于Swift 3.1,你可以这样做:'扩展数组元素==字符' – thedp

+0

@thedp:感谢您的反馈。请注意,OP要求扩展到'Sequence',而不是'Array'。 (一个数组是一个序列,但不是其他方式。) –

+0

我明白,我可能是错的,但是OP实际上试图做的是扩展字符串的字符。这与Swift 3.1有关。没有? – thedp