Swift 1.2 lowercaseString与enumerateSubstringInRange崩溃

时间:2015-02-12 06:54:56

标签: ios swift

刚刚将我的代码转换为Swift 1.2。我正在使用以下代码获得BAD_EXEC_ACCESS:

var wordsBeingTyped = NSString()
var lastWord = String()

wordsBeingTyped = proxy.documentContextBeforeInput // Gets the string being typed
let range = NSMakeRange(0, (wordsBeingTyped).length)
wordsBeingTyped.enumerateSubstringsInRange(range, options: NSStringEnumerationOptions.ByWords) { (substring, substringRange, enclosingRange, stop) -> () in
            lastWord = substring // The last word in the string wordsBeingTyped
        }

let lastWordLowercase = lastWord.lowercaseString

崩溃发生在最后一行。出于测试目的,我将该行更改为:

let lastWordLowercase = wordsBeingTyped.lowercaseString

它运作得很好。奇怪的是,当我在字符串中键入第一个单词时,它只会崩溃。在空格字符之后没有崩溃。

更新:我想到的工作是在使用enumerateSubstringsInRange之前创建一个新的let将wordBeingTyped转换为小写。所以:

let lowercaseWordsBeingTyped = wordsBeingTyped.lowercaseString

// ..enumerate string to get last word typed

let lastWordLowercase = lastWord

希望能有所帮助。

1 个答案:

答案 0 :(得分:0)

这是Xcode 6.3 beta 1中的一个错误。It's fixed in Xcode 6.3 beta 2