swift - 二元运算符 '>' 不能应用于两个 'String?!' 操作数

标签 swift

所以我有一个构建良好的项目。但是当我想将其存档时,它会在这行代码中抛出此错误:

let pred = NSPredicate(format: "%K in %@", "categoryID", selectedCategoryIDs!)
let selectedAlmanacEntries = almanacEntries.filter { pred.evaluate(with: $0) }.sorted(by: { ($0 as AnyObject).title > ($1 as AnyObject).title })

这在以前不是问题(早期版本)。 之前曾尝试重新启动 Xcode 并清理项目。 任何提示表示赞赏。

(Xcode 8、 swift 3)

最佳答案

swift 5

你可以通过这种方式简单地解包可选

let selectedAlmanacEntries = selectedAlmanacEntries.sorted {
    var isSorted = false
    if let first = $0.title, let second = $1.title {
        isSorted = first < second
    }
    return isSorted
}

关于swift - 二元运算符 '>' 不能应用于两个 'String?!' 操作数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46043441/

相关文章:

ios - UIProgressView setProgress 动画困惑

ios - 场景过渡淡化但不切换场景

ios - 我的函数需要用户位置,但它返回 nil

ios - 从 CoreData 读取数组时共享扩展崩溃

ios - 使用通用 Codable API 客户端处理非 JSON 响应

ios - 我如何告诉我的 prepare 方法在哪个单元格上按下了按钮?

ios - Firebase 快速返回 incored 快照

ios - UITesting 命令行参数选项

ios - 使用 CocoaPods 和 Obj-C 桥接头

ios - 将自定义 UIButton 样式应用于所有按钮