Ios Swift协议错误

Ios Swift协议错误,ios,swift,swift-protocols,Ios,Swift,Swift Protocols,我在Swift文件中声明了协议: protocol SocketManagerDelegate { func webSocketDidReceiveMessage(message:Message) func socketWasReconnected() func webSocketDidFailWithError(error:String) } import Foundation import MDWamp import SSKeychain @objc(SocketMan

我在Swift文件中声明了
协议

protocol SocketManagerDelegate {
   func webSocketDidReceiveMessage(message:Message)
   func socketWasReconnected()
   func webSocketDidFailWithError(error:String)
}

import Foundation
import MDWamp
import SSKeychain

@objc(SocketManager)
class SocketManager: NSObject, MDWampClientDelegate{

   static let instance = SocketManager()

   var delegate:SocketManagerDelegate?
我想在ObjC文件中使用协议:

#import <Project-Swift.h>

@interface ChatManager () <SocketManagerDelegate>
@end

@implementation ChatManager.........

project swift.h
在应用程序没有错误之前不会生成/更新。如果应用程序生成失败,
project swift.h
将不会更新

这是一种死锁的情况

解决方案:

步骤1:删除Objective-C文件中的协议确认

#import <Project-Swift.h>

@interface ChatManager () /*<SocketManagerDelegate> delete this*/
@end

project swift.h
在应用程序没有错误之前不会生成/更新。如果应用程序生成失败,
project swift.h
将不会更新

这是一种死锁的情况

解决方案:

步骤1:删除Objective-C文件中的协议确认

#import <Project-Swift.h>

@interface ChatManager () /*<SocketManagerDelegate> delete this*/
@end

你的协议没有确认objC。swift和objC中的协议是不同的

将CLA添加到您的协议中:

@objc protocol SocketManagerDelegate: class {
   func webSocketDidReceiveMessage(message:Message)
   func socketWasReconnected()
   func webSocketDidFailWithError(error:String)
}
更新


同时添加标志
@objc

您的协议未确认objc。swift和objC中的协议是不同的

将CLA添加到您的协议中:

@objc protocol SocketManagerDelegate: class {
   func webSocketDidReceiveMessage(message:Message)
   func socketWasReconnected()
   func webSocketDidFailWithError(error:String)
}
更新


还添加标志
@objc

您正在使用swift协议

protocol SocketManagerDelegate {
   func webSocketDidReceiveMessage(message:Message)
   func socketWasReconnected()
   func webSocketDidFailWithError(error:String)
}
在obj-c中,如果没有

@Objc
语句

请将您的代码替换为

@objc protocol SocketManagerDelegate:class {
   func webSocketDidReceiveMessage(message:Message)
   func socketWasReconnected()
   func webSocketDidFailWithError(error:String)
}

您正在使用swift协议

protocol SocketManagerDelegate {
   func webSocketDidReceiveMessage(message:Message)
   func socketWasReconnected()
   func webSocketDidFailWithError(error:String)
}
在obj-c中,如果没有

@Objc
语句

请将您的代码替换为

@objc protocol SocketManagerDelegate:class {
   func webSocketDidReceiveMessage(message:Message)
   func socketWasReconnected()
   func webSocketDidFailWithError(error:String)
}

试试@objc protocol SocketManagerDelegate:class{}@MikeAlter你的解决方案成功了。谢谢添加一个答案,我会接受它。欢迎您,在下面添加了答案,try@objc protocol SocketManagerDelegate:class{}@MikeAlter您的解决方案成功了。谢谢添加答案,我会接受。欢迎,仅在
class
下面添加答案并不能解决问题。一开始必须添加
@objc
。单独添加
类并不能解决问题。必须在开头添加
@objc