Невозможно получить доступ к методам протокола через делегата - PullRequest
0 голосов
/ 23 октября 2018

При доступе к методам протокола через делегата я получаю следующую ошибку: «Не известен метод экземпляра для селектора lostConnection»

Протокол Swift:

@objc protocol GameDelegate {
    func lostConnection()
}

Файл игры Objective C

//game.h

@protocol GameDelegate;
@interface SSStreamManager : NSObject 

@property (assign) id<GameDelegate> delegate

@end

Ошибка при вызове методов протокола

[self.delegate lostConnection]; // No known instance method for selector 'lostConnection'

1 Ответ

0 голосов
/ 23 октября 2018

Это становится нелепым, так как вы продолжаете отказываться показывать любой реальный код.Так что я покажу вам некоторый реальный код.Вот три файла в проекте приложения для 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

Это компилируется.Идите и поступайте так же.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...