'在“试试”中没有发出投掷功能的电话。表达[警告]在swift 3中

时间:2016-11-23 02:40:57

标签: ios core-data swift3 try-catch warnings

我'试图从核心数据中删除和反对,我在try catch中尝试了它,如下所示。

do {
   try self.managedContext.deleteObject(self.productList[indexPath.row])
} catch let error as NSError {
        print("something wrong with the delete : \(error.userInfo)")
}

它说'no calls to throwing functions occur within 'try' expression'catch block is unreachable because no errors are throw in 'do' block。下面的图片给你更多的想法。

enter image description here

为什么会这样。我不知道。怎么解决这个问题。希望你的帮助。

2 个答案:

答案 0 :(得分:6)

deleteObject方法不会抛出。删除Do-Catch块,警告将消失。警告似乎非常自我解释。

答案 1 :(得分:0)

请确保您在try 抛出之后调用的方法。

示例:

func someThrowingFunction() throws -> Int {
    // ...
}

let x = try? someThrowingFunction()

let y: Int?
do {
    y = try someThrowingFunction()
} catch {
    y = nil
}

有关此内容的更多信息:ErrorHandling