你抓不到不会抛出错误的东西。您需要改进工作流程。
返回数组和检查空数组后拨:
func recherche(code: String) -> [Vendeurs] {
let context=getContext(backGround: false)
let fetchRequest:NSFetchRequest<Vendeurs> = Vendeurs.fetchRequest()
let predicate:NSPredicate = NSPredicate(format: "code == %@", code)
fetchRequest.predicate = predicate
do {
return try context.fetch(fetchRequest) as! [Vendeurs]
} catch {
print(error)
return [Vendeurs]()
}
}
let vendeurs = v.recherche(code: codeSecret)
if !vendeurs.isEmpty, let vid = Int(vendeurs[0].id) {
if vid > 0 && vid != idVendeur {
// blah blah
}
}
,或使recherche
方法can throw
func recherche(code: String) -> [Vendeurs] throws {
let context=getContext(backGround: false)
let fetchRequest:NSFetchRequest<Vendeurs> = Vendeurs.fetchRequest()
let predicate:NSPredicate = NSPredicate(format: "code == %@", code)
fetchRequest.predicate = predicate
return try context.fetch(fetchRequest) as! [Vendeurs]
}
do {
let vendeurs = try v.recherche(code: codeSecret)
if !vendeurs.isEmpty, let vid = Int(vendeurs[0].id) {
if vid > 0 && vid != idVendeur {
// blah blah
}
}
} catch {
print(error)
}
或者 - 第三个选择 - 如果recherche
只应该检查并返回一个id> 0
func recherche(code: String) -> Int {
let context=getContext(backGround: false)
let fetchRequest:NSFetchRequest<Vendeurs> = Vendeurs.fetchRequest()
let predicate:NSPredicate = NSPredicate(format: "code == %@", code)
fetchRequest.predicate = predicate
do {
let result = try context.fetch(fetchRequest) as! [Vendeurs]
guard !result.isEmpty, let id = Int(result[0].id) else { return 0 }
return id
} catch {
print(error)
return 0
}
}
let vid = v.recherche(code: codeSecret)
if vid > 0 && vid != idVendeur {
// blah blah
}
}
谢谢....这是很清楚! – Olivier