我在iOS模拟器中运行Xcode 6.3beta 1和iOS 8.3beta1。我有一个UITextField@IBOutlet它的uppercaseString属性的text属性,如下所示:

@IBOutlet weak var field: UITextField!

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

上述工作流将导致崩溃。打开僵尸对象后,我可以看到以下错误:
*** -[CFString release]: message sent to deallocated instance 0x7b689cd0

我该怎么解决?

最佳答案

我遇到了同样的问题-很高兴你把这个贴出来,我知道我没有疯!
我发现简单的“uppercaseString”方法失败,并出现了一个释放对象错误,而采用区域设置的扩展版本可以工作。我猜苹果内部在处理默认区域设置时有一个bug。。。将代码更改为:

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

08-19 08:02