当通过委托访问协议方法时,出现以下错误: “选择器'lostConnection'的未知实例方法”
快速协议:
@objc protocol GameDelegate {
func lostConnection()
}
目标C游戏文件
//game.h
@protocol GameDelegate;
@interface SSStreamManager : NSObject
@property (assign) id<GameDelegate> delegate
@end
调用协议方法时出错
[self.delegate lostConnection]; // No known instance method for selector 'lostConnection'
答案 0 :(得分:0)
这变得荒谬,因为您一直拒绝显示任何真实代码。因此,我将向您展示一些真实的代码。这是一个iOS应用项目中的三个文件:
ViewController.swift
import UIKit
@objc protocol GameDelegate {
func lostConnection()
}
class ViewController: UIViewController {
}
Thing.h
#import <Foundation/Foundation.h>
@protocol GameDelegate;
@interface Thing : NSObject
@property (assign) id<GameDelegate> delegate;
@end
Thing.m
#import "Thing.h"
#import "MyApp-Swift.h"
@implementation Thing
- (void) test {
[self.delegate lostConnection];
}
@end
可以编译。去吧,做同样的事情。