objective-c - Xcode 错误 : No known instance method for selector

标签 objective-c xcode

我需要帮助调试我的类(class)。我遇到了一个非常奇怪的错误,以至于我找不到任何类似的错误,所以我将放下我的大部分代码。

//Tab.h
#import <UIKit/UIKit.h>
@class Tab;
@protocol TabDelegateDataSource <NSObject>
@required
-(void)removeTab:(Tab *)tab;
@end

@interface Tab : UIView
{
     id <TabDelegateDataSource> __strong _delegate;
}

@property(strong) id <TabDelegateDataSource> delegate;

-(void)removeTab;

@end

//  Tab.m
#import "Tab.h"
@implementation Tab
@synthesize delegate = _delegate;
-(void)removeTab
{
    [self.delegate removeTab:self];//Error here saying: No known instance method for selector 'removeTab:'  
}

@end

最佳答案

我现在可以随意重新创建和修复此错误。

确保定义它的 .h header ...

@protocol TabDelegateDataSource <NSObject>
-(void)removeTab:(Tab *)tab;
@end

...包含无论您计划使用委托(delegate)的什么地方,例如在包含以下内容的 .m 源顶部的某处:

[self.delegate removeTab:self]

如果编译器只看到像这样的 TabDelegateDataSource 的前向定义:

@protocol TabDelegateDataSource;

你会得到错误:

error: no known instance method for selector 'removeTab:'

而不是更预期的前向定义相关错误

关于objective-c - Xcode 错误 : No known instance method for selector,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8387701/

相关文章:

iphone - 如何在不缩放 iPhone subview 的情况下缩放图像?

iphone - 删除行时崩溃

ios - xcode 设备支持 11.3 15E5216a

iphone - 如何使用 NSURLRequest 访问 WebDynpro 页面

ios - 将数据从 2 个 View Controller 发送到一个 View Controller

从另一个类访问时,swift 类变量不会被更改

iphone - TableView 中的 slider 问题

iphone - 将 TTImageView 设置为 TTView 的背景

Objective-C 与 C,哪一个是 Mac 上更好的语言?

ios - dispatch_async 是否可以中断调用任务