我正試圖遷移Swift 2.2 iOS應用程序,我沒有寫入Swift 3.有一些函數使用Realm來獲取模型並將它們返回到數組中。這些都在Swift 2.x中工作,但在Swift 3中產生了下面的錯誤。我還包含了相關的函數定義。無法轉換類型'LazyFilterBidirectionalCollection>'的返回表達式
/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
}
我不知道實際問題是什麼,或者我會如何解決它。任何建議感激。
:使用此
Array
初始化的序列轉換爲數組的其他的例子嗎?我注意到你正在問這樣的幾個問題。如果使用CocoaPods – Pierce
嘗試'return Array(emptyEntryModels)',請確保您的pod文件已更新爲Swift 3。如果這不起作用,請嘗試'將Array(emptyEntryModels)作爲[EntryModel]'返回。 – vacawama
@vacawama,'return Array(emptyEntryModels)'工作!如果你願意,可以添加這個答案。 – Lastmboy