【发布时间】:2017-02-18 22:34:32
【问题描述】:
我正在尝试将我没有写入 Swift 3 的 Swift 2.2 iOS 应用程序迁移到 Swift 3。有很多函数使用 Realm 来获取模型并将它们返回到数组中。这些都在 Swift 2.x 中工作,但在 Swift 3 中生成了以下错误。我还包含了相关的函数定义。
/SubmissionDataManager.swift:184:16: 无法转换返回 类型表达 'LazyFilterBidirectionalCollection>' 返回类型 '[EntryModel]'
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 emptyEntryModels
}
我不确定实际问题是什么,或者我将如何解决它。任何建议表示赞赏。
【问题讨论】:
-
你用什么来管理你的依赖关系?我注意到你问了几个这样的问题。如果使用 CocoaPods,请确保您的 pod 文件已针对 Swift 3 更新
-
试试
return Array(emptyEntryModels)。如果这不起作用,请尝试return Array(emptyEntryModels) as [EntryModel]。 -
@vacawama,
return Array(emptyEntryModels)工作!如果需要,请将此添加为答案。 -
我添加了我的答案,解释了
Array(emptyEntryModels)如何解决问题。
标签: ios arrays swift model realm