【发布时间】:2026-01-08 23:30:01
【问题描述】:
我正在 swift 中开发一个 iOS 应用程序,其中 socket.io 库类是用 Objective C 编写的。
当我将 Xcode 更新到 6.3.2 时,我遇到了很多错误
@protocol SocketIODelegate <NSObject>
@optional
- (void) socketIO:(SocketIO *)socket didReceiveMessage:(SocketIOPacket *)packet;
- (void) socketIO:(SocketIO *)socket didReceiveJSON:(SocketIOPacket *)packet;
- (void) socketIO:(SocketIO *)socket didReceiveEvent:(SocketIOPacket *)packet;
- (void) socketIO:(SocketIO *)socket didSendMessage:(SocketIOPacket *)packet;
- (void) socketIO:(SocketIO *)socket onError:(NSError *)error;
- (void) socketIO:(SocketIO *)socket onFailWithError:(NSError *)error;
@end
当我在 swift 类中实现这些委托方法时,我得到“定义与以前的值冲突”
swift中实现的委托方法如下:
func socketIO(socket: SocketIO!, onFailWithError error: NSError!) {}
func socketIO(socket: SocketIO!, onError error: NSError!){}
func socketIO(socket: SocketIO!, didReceiveEvent packet: SocketIOPacket!) {}
如何解决这个问题?
【问题讨论】:
-
显示已实现的委托方法。
-
@Droppy 请检查..我已经编辑了问题。
-
这是一个正式的协议吗?在哪种情况下你不应该使用
override? -
是的,它是一个正式的协议
-
我可能对
override位感到困惑;我只在 Xcode 7 beta 下真正使用过 Swift 2.0。
标签: ios objective-c swift xcode6.3.2