Objective-C类别的问题

时间:2011-02-11 15:39:18

标签: iphone objective-c categories

以下代码给出了一个错误“无法找到'StartTimerViewController'的接口声明

#import "StartTimerViewController.h"

@interface StartTimerViewController (timerMethods) 

-(void)startTimer:(id)sender withTimeIntervalInSeconds:(NSTimeInterval)time 
        andMessage:(NSString *)message
notificationChoice:(BOOL)notificationChoice
      andWithLabel:(UILabel *)theLabel;

-(void)updateLabel:(NSTimer *)timer;

@end

为什么会这样? StartTimerViewController.h确实存在,并且是我编码的有效类。该文件应该是一个扩展StartTimerViewController的类别。

这是StartTimerViewController.h的开头

#import <UIKit/UIKit.h>
#import "StartTimerViewController+timerMethods.h"

@interface StartTimerViewController : UIViewController {

2 个答案:

答案 0 :(得分:7)

您有循环参考。你不能在StartTimerViewController.h中包含timermethods.h,因为timerMethods.h需要StartTimerViewController.h。您永远不需要父母知道类别,只有类别需要知道父类。

祝你好运!

答案 1 :(得分:0)

您在声明类之前导入类别的标题。它永远不会有机会看到这个课程,因为它首先出现!因此,请将#import "StartTimerViewController+timerMethods.h"移至文件的 end