gpt4 book ai didi

swift - Swift 中的对象包装器(代理)转发方法

转载 作者:行者123 更新时间:2023-11-30 13:36:13 25 4
gpt4 key购买 nike

CBPeripheral 是一个测试起来很痛苦的对象,因为它无法单独实例化。因此,我在它周围使用了一个包装器 (HBRPeripheralWrapper)(也用于其他目的)。

我想在包装器上转发大部分调用(HBRPeripheralWrapper) 到实际包装对象 CBPeripheral

从技术上讲,它可以使用 forwardInitation 工作,但我如何在 Swift 中采用类似的模式?

PS:NSInspirationSwift 中不可用

class HBRPeripheralWrapper {
let peripheral:CBPeripheral

// I would like to avoid this "manual" forwarding
var identifier: NSUUID {
get {
return peripheral.identifier
}
}

init(peripheral:CBPeripheral) {
self.peripheral = peripheral
}

// target forwarding is great, but how can I make the compiler happy?
override func forwardingTargetForSelector(aSelector: Selector) -> AnyObject? {
if(self.peripheral.respondsToSelector(aSelector)) {
return self.peripheral
}
return super.forwardingTargetForSelector(aSelector)
}

}

最佳答案

考虑扩展CBPeripheral,而不是制作HBRPeripheralWrapper

extension CBPeripheral {
// add whatever else you need here.
}

除了转发之外,您没有准确地说出在 HBRPeripheralWrapper 中执行的操作,因此我无法提供更多帮助。

关于swift - Swift 中的对象包装器(代理)转发方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36046705/

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