【发布时间】:2015-11-21 11:37:50
【问题描述】:
我想我很了解 Swift 2.0 中的 do-try-throw-catch 机制。所有抛出的错误都应该在代码的某个地方被捕获。这是我的问题:
假设我有一个 UI 分离并与控制器类通信的应用程序。在控制器类中,如果我在委托方法中抛出错误(控制器本身就是委托),我应该在哪里捕获它?
让我用一个例子来解释。
Controller 类使用来自核心蓝牙框架的 CBCentralManagerDelegate。 Controller 类是 CBCentralManager 的一个委托。还有一个 ViewController 是 Controller 类的代表。当我在里面抛出错误时会发生什么
public func centralManager(central: CBCentralManager, didDiscoverPeripheral peripheral: CBPeripheral, advertisementData: [String: AnyObject], RSSI: NSNumber)
我在哪里可以发现错误?我想我无法捕捉到它,因为核心蓝牙协议方法没有实现抛出错误,因为它们是用 Objective C 编写的。我觉得我唯一的选择是使用控制器协议方法,它告诉 UI 存在错误。我说的对吗?
Objective-C 中没有实现的委托方法呢?如何捕获用 Swift 2.0 编写的委托方法引发的错误?
【问题讨论】:
标签: ios error-handling try-catch core-bluetooth swift2