gpt4 book ai didi

ios - Swift 协议(protocol)错误

转载 作者:搜寻专家 更新时间:2023-11-01 06:15:30 27 4
gpt4 key购买 nike

我在我的 Swift 文件中声明了 protocol:

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 文件中使用该协议(protocol):

#import <Project-Swift.h>

@interface ChatManager () <SocketManagerDelegate>
@end

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

我收到这个错误:

enter image description here

无法解决这个问题。想法?

在我的 project-swift.h 文件中,变量 delegate 根本没有显示:

SWIFT_CLASS_NAMED("SocketManager")
@interface SocketManager : NSObject <MDWampClientDelegate>
SWIFT_CLASS_PROPERTY(@property (nonatomic, class, readonly, strong)
SocketManager * _Nonnull instance;)
+ (SocketManager * _Nonnull)instance SWIFT_WARN_UNUSED_RESULT;
@property (nonatomic, strong) MDWamp * _Null_unspecified wampConnection;
@property (nonatomic, readonly, copy) NSString * _Nonnull socketUrlSecure;
@property (nonatomic, readonly, copy) NSString * _Nonnull socketUrl;

最佳答案

你正在使用 swift 协议(protocol)

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)
}

关于ios - Swift 协议(protocol)错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46033111/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com