我做了一個通用方法,它返回核心數據庫中的最後一條記錄,但是在返回語句中:return _lastItem as! [T]
表示Thread X: signal SIGABRT
。我怎樣才能解決這個問題?核心數據庫最後記錄的通用方法
func lastRecord<T: NSManagedObject>(_ type : T.Type, sort: NSManagedObject? = nil) -> [T] {
let _context = DataBaseController.persistentContainer.viewContext
let _request = T.fetchRequest()
_request.fetchLimit = 1
do {
let _result = try _context.fetch(_request)
if !_result.isEmpty {
let _lastItem = _result[0]
return _lastItem as! [T]
} else {
return _result as! [T]
}
} catch {
print("Error : \(error)")
return []
}
}
在此先感謝!
當然'return [_lastItem] as! [T]'? – Grimxn
'_result'是一個數組。 'let _lastItem = _result [0]'是一個管理對象。你可能想返回'T'而不是'[T]' –
@MartinR謝謝你的回答! – yerpy