我有这个相对简单的方法来过滤 tableView 的数据源对象。
func filterCategoriesWithQuery(query: String) {
placeCategoriesTableViewDataSource.filteredCategories
= placeCategoriesTableViewDataSource.placeCategories.filter({ (category: JSON) -> Bool in
let categoryName = (category["name"].stringValue).lowercaseString
if categoryName.hasPrefix(query.lowercaseString) {
return true
} else {
return false
}
})
genericTableView.reloadData()
这在更新到 Swift-1.2/Xcode-6.3b 之前运行良好,但现在它总是在 lowercaseString
时崩溃。被利用。 lowercaseString
似乎有错误方法?
与 NSZombieEnabled
或打破 malloc_free_break
我可以看到它因 [CFString release]: message sent to deallocated instance
而崩溃
我做错了什么吗?这是一个错误吗?有什么解决方法吗?
最佳答案
这是 Swift 1.2 第一个测试版中的一个错误。 在 Apple 开发者论坛上,Chris Lattner 提到了 a similar bug with uppercaseString这应该会在下一个测试版中修复。
在此之前,作为解决方法,您可以尝试在项目的build设置中将 Swift 编译器优化更改为无。这帮助我解决了我在使用数组时遇到的类似问题。
关于ios - Swift 1.2 崩溃与 .lowercaseString,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28606686/