Swift - 尝试从文本字段循环stringValue

时间:2014-07-06 08:30:50

标签: loops swift

我试图迭代文本字段中的每个字符,

这是我如何做到的:

@IBOutlet var needTranslate : NSTextField
for i in needTranslate.stringValue{

然后我收到一个错误:SourceKitService终止

只有当我尝试遍历此字符串值时才会发生这种情况。我知道这是一个错误,但我在代码中做错了吗?

1 个答案:

答案 0 :(得分:1)

这看起来像是一个编译器错误。

  • 您的代码会导致运行时异常 swift编译器本身。即使是完全错误的源代码也不会发生这种情况。
  • 您的代码实际上看起来正确(对我而言)因为stringValue的返回值 是一个隐式解包的可选字符串。

问题可以通过

重现
var s : String! = "foo"
for i in s {
    println(i)
}

我无法从文档中看到为什么for ... in ...循环不适用 一个隐式展开的字符串,所以我建议在Apple提交错误报告。

作为一种变通方法,您可以将stringValue的返回值视为“正常” 使用可选绑定显式选择和解包:

if let str = needTranslate.stringValue {
    for i in str {
         println(i)  
    }
}