我正在迅速开发一个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类中实现这些委托方法时,我得到“与先前值的定义冲突”
快速实现的委托方法如下:
func socketIO(socket: SocketIO!, onFailWithError error: NSError!) {}
func socketIO(socket: SocketIO!, onError error: NSError!){}
func socketIO(socket: SocketIO!, didReceiveEvent packet: SocketIOPacket!) {}
如何解决这个问题?
最佳答案
使用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!) {}
}
因此,请尝试将委托方法的实现移出另一个函数,希望这也是您的问题。
关于ios - 定义与先前的值冲突-Xcode 6.3.2,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/30933764/