Ios Swift协议错误
我在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
协议
:
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
。