IBOutlet 的 uppercaseString UITextField.text 崩溃

uppercaseString of IBOutlet UITextField.text crash

我是 运行 Xcode 6.3 beta 1,iOS 8.3 beta 1 在 iOS 模拟器中。我有一个 UITextField @IBOutlet,我正在尝试获取其 text 属性 的 uppercaseString 属性,如下所示:

@IBOutlet weak var field: UITextField!

@IBAction func calledAfterUserAction(){
    let capitalized = field.text.uppercaseString
}

以上工作流程会导致崩溃。打开 Zombie Objects 后,我可以看到以下错误:

*** -[CFString release]: message sent to deallocated instance 0x7b689cd0

我该如何解决这个问题?

我刚刚 运行 遇到了同样的问题 - 很高兴你发布了这个,这样我就知道我没有疯了!

我发现简单的 "uppercaseString" 方法因释放对象错误而失败,而采用区域设置的扩展版本 有效 。我猜在处理默认语言环境时存在 Apple 内部错误...将您的代码更改为:

let capitalized = field.text.uppercaseStringWithLocale(NSLocale.currentLocale())