gpt4 book ai didi

ios - 'filter' 与嵌套过滤器的使用不明确

转载 作者:行者123 更新时间:2023-11-30 11:53:15 28 4
gpt4 key购买 nike

我正在对另一位开发人员的代码进行一些工作。我已成功将其迁移到 Swift 4,但随着最新的 Swift 升级(Swift 4.2?),我开始收到 Ambigous use of 'filter' 错误。我能够通过简单地分解复杂的语句来修复其中的大多数问题,但遇到了一个带有嵌套过滤器的问题,我不知道该怎么办。完整的功能如下:

func validateSubmission(_ submissionId: Int) -> ([EntryModel]) {
let realm = try! Realm()

let submissionModel = realm.objects(SubmissionModel.self).filter({ $0.id == submissionId }).first!

let entryModels = submissionModel.entryModels

// Check for all entry details field which are mandatory and are empty and not hidden
let emptyEntryModels = entryModels.filter({ $0.entryDetailArray.filter({ $0.entryDetailValue.isEmpty && $0.isMandatory && !($0.isHidden) }).count > 0 })

return Array(emptyEntryModels)
}

我收到错误消息:

let emptyEntryModels = entryModels.filter({ $0.entryDetailArray.filter({ $0.entryDetailValue.isEmpty && $0.isMandatory && !($0.isHidden) }).count > 0 })

谁能告诉我如何将其“改写”为更易于管理的内容,以便我可以消除不明确的过滤器问题?

最佳答案

我在 Swift 4.0.3 中尝试了你的代码,它没有给我任何错误。尝试使用类型注释也许会起作用

let emptyEntryModels: [EntryModel] = entryModels.filter({ $0.entryDetailArray.filter({ $0.entryDetailValue.isEmpty && $0.isMandatory && !($0.isHidden) }).count > 0 })

// if you want simplified version of it
var result: [EntryModel] = []
for entryModel in entryModels {
for entryDetail in entryModel.entryDetailArray {
if entryDetail.entryDetailValue.isEmpty && entryDetail.isMandatory && !entryDetail.isHidden {
result.append(entryModel)
}
}
}

关于ios - 'filter' 与嵌套过滤器的使用不明确,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48122134/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com