找不到超类的接口声明

时间:2015-07-27 15:38:36

标签: objective-c

我知道这是一个常见的主题,但我没有找到任何答案来帮助我解决这个问题。

好吧,我(现在)有3个.h文件, 一个是另外两个人的超类。

超类:ExportationAutoFilterNew

#import <Foundation/Foundation.h>
#import <HIDDEN/PluginFilter.h>

@class MyOutlineView;

@interface ExportationAutoFilterNew : PluginFilter
    @property (assign, nonatomic) NSUserDefaults *prefs;
    @property (assign, nonatomic) MyOutlineView *databaseOutline;
@end

然后,子类:DetectNewExams&amp; ExportExams

#import <Foundation/Foundation.h>
#import <HIDDEN/PluginFilter.h>
#import "ExportationAutoFilterNew.h"

@interface DetectNewExams : ExportationAutoFilterNew

- (void)detectExams:(NSDate*)currentDate timeInterval:(double)timeInterval afterExitHidden:(BOOL)check;

#import <Foundation/Foundation.h>
#import <HIDDEN/PluginFilter.h>
#import "ExportationAutoFilterNew.h"

@interface ExportExams : ExportationAutoFilterNew

- (void)exportExams:(NSManagedObject*)curObj;

.m就像这样

超类:ExportationAutoFilter

#import <HIDDEN/PreferencesWindowController.h>
#import <HIDDEN/browserController.h>
#import "ExportationAutoFilterNew.h"
#import "DetectNewExams.h"

@implementation ExportationAutoFilterNew

此文件的Xcode(ExportationAutoFilterNew.m):

Instance method '-detectExams:timeInterval:afterExitHidden:' not found (return type defaults to 'id')

致电:

[self detectExams:lastExportDate timeInterval:0 afterExitHidden:YES];

子类:DetectNewExams

#import <HIDDEN/PreferencesWindowController.h>
#import <HIDDEN/browserController.h>
#import "DetectNewExams.h"
#import "ExportExams.h"

@implementation DetectNewExams

在这个文件(DetectNewExams.m)中,Xcode说:

Instance method '-exportExams:' not found(return type defaults to 'id')

致电:

[self exportExams:curObj];

然后:ExportExams

#import <HIDDEN/PreferencesWindowController.h>
#import <HIDDEN/browserController.h>
#import "ExportExams.h"

@implementation ExportExams

我在这件事上浪费了很多时间,我无法解决问题,你能帮助我吗?我查找了编译圈子,但我不认为我用我的导入创建了一个..

感谢。

2 个答案:

答案 0 :(得分:0)

您的界面未正确声明。试试这个。

@interface ExportationAutoFilterNew : PluginFilter
    @property (nonatomic) NSUserDefaults *prefs;
    @property (nonatomic) MyOutlineView *databaseOutline;
@end

答案 1 :(得分:0)

现在您已发布实际错误,这一点变得更加清晰。但是你还没有发布足够的背景信息。

Instance method '-detectExams:timeInterval:afterExitHidden:' not found (return type defaults to 'id')

这意味着在编译代码时没有看到方法声明,或者在某个类上声明了方法,无论被调用的是什么,都不是。

由于您没有显示调用站点或被调用变量的声明,因此这是一个猜测。该方法在DetectNewExams类上声明。我敢打赌你有一个指向ExportationAutoFilterNew实例的变量,因此,编译器正确地警告该方法在类上不存在。