定义与先前值冲突 - Xcode 6.3.2

时间:2015-06-19 08:44:34

标签: ios objective-c swift xcode6.3.2

我在swift中开发一个iOS应用程序,用目标C编写的socket.io库类。

当我将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课程中实现这些委托方法时,我发现&#34; 定义与以前的值冲突&#34;

swift中实现的委托方法如下:

func socketIO(socket: SocketIO!, onFailWithError error: NSError!) {}

func socketIO(socket: SocketIO!, onError error: NSError!){}

func socketIO(socket: SocketIO!, didReceiveEvent packet: SocketIOPacket!) {}

如何解决这个问题?

1 个答案:

答案 0 :(得分:1)

使用Xcode 6.3.2并实现委托方法对我来说很好。

我只能在此处阅读此SO问题后重现您提到的错误消息:Unable to overload function in viewDidLoad() in swift

这确实无法为我编译定义与先前值冲突:

func whatever() {
    func socketIO(socket: SocketIO!, onFailWithError error: NSError!) {}

    func socketIO(socket: SocketIO!, onError error: NSError!){}

    func socketIO(socket: SocketIO!, didReceiveEvent packet: SocketIOPacket!) {}
}

因此,尝试将委托方法的实现移出另一个函数,希望这也是您的问题。