gpt4 book ai didi

ios - Swift 中的委托(delegate)模式与错误处理

转载 作者:可可西里 更新时间:2023-11-01 01:37:49 27 4
gpt4 key购买 nike

我正在创建一个名为 WeatherService 的类,它根据位置提供天气预报(惊喜!)。这里有很多地方可能出错;找不到位置,无法访问天气服务,...

该服务有一个名为 weatherFor 的方法,以 location 对象作为参数。它是异步的。

我正在使用 Swift 2。所以我一直在阅读有关 Swift 2.0 中的错误处理的信息,似乎有一种方法可以被多个来源描述,那就是一个带有 ResultType 的闭包和一个成功处理程序,并且错误处理程序。我应该用那个吗?或者我应该像许多框架对象那样创建一个委托(delegate)并传递错误吗?我已经有一个天气服务委托(delegate),因为我需要知道它何时开始、何时完成等。

委托(delegate)协议(protocol)有如下方法:

  • 开始搜索天气预报
  • 结束天气预报搜索

但我不知道我是否还应该在委托(delegate)中添加一个方法,当天气服务内部发生错误时调用该方法,通知发生错误并且无法找到天气预报,或者这是否不好?我想在 Swift 中调用具有“错误方法”的委托(delegate)不是坏事吗?

最佳答案

如果您只有一个其他对象有兴趣接收有关进度、错误等的通知,您可以使用闭包或委托(delegate)。这在某种程度上取决于错误可能发生的时间和地点。如果您只需要在调用 weatherFor 时传递错误或状态,您可以使用闭包解决方案。如果错误可能“随时”发生,即使是在获取天气之后或之前,您也应该使用委托(delegate)解决方案。或两者的结合。

另一种方法是在发生错误时发布通知。这意味着不止一个对象可以同时监听更新。

关于ios - Swift 中的委托(delegate)模式与错误处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34136674/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com