尝试将UITextField.text作为String操作时,swift中的EXC_BAD_ACCES

时间:2014-06-08 15:51:25

标签: ios swift

我在使用swift编写的IOS应用程序中遇到过一个错误,我已经能够在一个简单的游乐场中重现:代码如下:

import UIKit
import Foundation

var textField = UITextField()
textField.text = "Foo"
let content = textField.text
println(content.uppercaseString)

错误消息如下:

执行被中断,原因:EXC_BAD_ACCESS(代码= 1,地址= 0x0)。 该过程一直处于被中断的位置,使用“thread return -x”返回表达式求值之前的状态。 * thread#1:tid = 0x657a84,0x000000010be3e4c6,queue ='com.apple.main-thread',stop reason = EXC_BAD_ACCESS(code = 1,address = 0x0)   *帧#0:0x000000010be3e4c6

另一方面,以下代码效果很好:

let testString = "Bar"
println(testString.uppercaseString)

在使用Swift或桥接String和NSString时,我在内存管理中是否遗漏了哪些内容?

提前致谢。

1 个答案:

答案 0 :(得分:2)

我在这里重现了崩溃,看起来很可疑,就像你在我uppercaseString中发现了一个错误。提交您提供的代码的错误。

虽然Apple正在解决这个问题,但我还是采用了这种解决方法:

var upper = content.uppercaseStringWithLocale(NSLocale.currentLocale());