我有这个相对简单的方法来过滤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方法有一个bug?
使用NSZombieEnabled或者在malloc_free_break中断,我可以看到它与[CFString release]崩溃:发送到解除分配的实例的消息