我正在尝试遍历文本字段中的每个字符,

这是我的做法:

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


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

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

最佳答案

在我看来,这似乎是一个编译器错误。


您的代码导致运行时异常
快速编译器本身。即使对于完全错误的源代码也不应该发生这种情况。
对我来说,您的代码实际上看起来是正确的,因为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)
    }
}

关于loops - Swift-尝试遍历文本字段中的stringValue,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/24594055/

10-10 20:56