在Swift上委派Objective-C协议

佩德罗·卡萨格兰德

我正在使用Swift语言在iOS上实现UDP侦听器。

为此,我要中继CocoaAsyncSocket项目。

我使用Bridging-Header.h成功导入了CocoaAsyncSocket库,我可以从Objective-C类中调用这些函数,但是我无法迅速编写委托函数。

这是我设置套接字并定义ViewController.swif作为侦听器的委托类的代码:

func setupSocket() {
    var udpSocket : GCDAsyncUdpSocket = GCDAsyncUdpSocket(delegate: self, delegateQueue: dispatch_get_main_queue())
    var error : NSError?
    let port : UInt16 = 12121
    let address : String = "228.5.12.12"
    udpSocket.bindToPort(port, error: &error)
    udpSocket.joinMulticastGroup(address, error: &error)
    udpSocket.enableBroadcast(true, error: &error)
    println("228.5.12.12")
}

这是Objective-C中的以前的委托函数:

- (void)udpSocket:(GCDAsyncUdpSocket *)sock didReceiveData:(NSData *)data
                                               fromAddress:(NSData *)address
                                         withFilterContext:(id)filterContext;

最后,这就是我在Swift上实现函数的方式:

override func udpSocket(sock : GCDAsyncUdpSocket!, didReceiveData data : NSData!,  fromAddress address : NSData!,  withFilterContext filterContext : AnyObject!) {
    println(data)
}

声明ViewController类以实现正确的协议:

class ViewController: UIViewController, GCDAsyncUdpSocketDelegate {
    ...
}

除了覆盖外,我没有编译错误。

问题:我做错了什么?

克雷里

override关键字用于覆盖超类的方法由于您没有覆盖任何方法,override因此不需要关键字。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类常见问题

在Objective-C类中导入Swift协议

来自分类Dev

Objective-C协议的默认实现

来自分类Dev

Objective-C协议不发送消息

来自分类Dev

Swift中的Objective-C协议-显示不符合错误

来自分类Dev

与Swift集成Objective C协议

来自分类Dev

Objective-C类中的Swift协议

来自分类Dev

如何在Swift中为Objective-C中定义的接口指定协议名称

来自分类Dev

在Objective-C中使用Swift协议

来自分类Dev

在Swift中实现Objective C协议

来自分类Dev

Swift中不应该执行Objective-C的可选协议吗?

来自分类Dev

符合Objective-C协议的Swift类

来自分类Dev

如何创建符合Swift和Objective-C共享协议的类方法?

来自分类Dev

使用getter在Objective-C协议上的Swift 1.2错误

来自分类Dev

Swift类不符合带有错误处理的Objective-C协议

来自分类Dev

Swift 2协议扩展和对Objective-C类型的一致性

来自分类Dev

Objective C协议泛型

来自分类Dev

如何使用Swift中的协议公开Objective-C对象的私有类方法?

来自分类Dev

如何使Swift类符合Objective-C协议,而又不使其暴露于Objective-C?

来自分类Dev

Swift在协议上可比

来自分类Dev

Swift对应的Objective C语法“ extension where self:<某些协议>”

来自分类Dev

协议中的objective-c定义了一个属性协议

来自分类Dev

在Swift中将字典对象传递给Objective C协议

来自分类Dev

Objective-C对实现协议的对象的引用

来自分类Dev

Swift类不符合带有错误处理的Objective-C协议

来自分类Dev

Swift 2协议扩展和对Objective-C类型的一致性

来自分类Dev

Swift中不可见的Objective-C协议方法

来自分类Dev

Swift中无法识别Objective-C协议

来自分类Dev

Swift协议不会触发Objective C协议方法

来自分类Dev

在 Swift 中实现 Objective-C 协议

Related 相关文章

热门标签

归档