ios - Swift 1.2 崩溃与 .lowercaseString

标签 ios xcode6 swift

我有这个相对简单的方法来过滤 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/

相关文章:

xcode - 由于错误,Scheme 加载失败

ios - 如何使用 XCode 在 iOS 中的媒体播放器应用程序中制作一个正在播放的栏?

arrays - 枚举由字典元素组成的数组时,无法修改字典值

ios - 广告未在 MoPub IOS-SWIFT 中加载 - 横幅

ios - iPhone app 会因为不支持 iPhone 5 屏幕尺寸而被拒绝吗?

objective-c - XCode 不会将我的 iPhone 设置为事件方案

in-app-purchase - 可以在 IOS 8 (Xcode 6) 模拟器中测试应用内购买吗?

ios - 在 SwiftUI 中滑动列表时隐藏导航栏

ios - 具有不同数量图像的动态 UITableView

ios - 从 Swift 中的模型数组获取索引