为什么我会在MyTableViewController之前收到此错误“error:expected specifier-qualifier-list

时间:2010-10-15 15:27:51

标签: core-data ios4 uitableview

1)我导入了CoreData.framework。在小组&我在Framworks列表中与UIKit.framework,Foundation.framework,CoreGraphics.framework一起看到的文件。

2)我有这段代码,我不确定这个错误是什么意思

#import <UIKit/UIKit.h>

@interface SQLLiteDemoAppDelegate : NSObject <UIApplicationDelegate> {
   UIWindow *window;
   MyTableViewController *myTableViewController; //error on this line
}

@property (nonatomic, retain) IBOutlet UIWindow *window;

@end

MyTableViewController.h looks like this
#import <UIKit/UIKit.h>
#import <CoreData/CoreData.h>


@interface MyTableViewController : UITableViewController {
NSMutableArray *names;
}

@end

2 个答案:

答案 0 :(得分:1)

MyTableViewController未在您使用它的地方声明,因此编译器无法知道如何处理该名称。您有2个选项来解决这个问题:

  1. 只需在SQLLiteDemoAppDelegate.h文件中导入MyTableViewController.h
  2. 在头类中使用forward声明并在.m文件中导入SQLLiteDemoAppDelegate.h:

    //SQLLiteDemoAppDelegate.h
    @class MyTableViewController;
    @interface SQLLiteDemoAppDelegate : NSObject <UIApplicationDelegate> {
    ...
    
    
    //SQLLiteDemoAppDelegate.m
    #import "MyTableViewController.h"
    ...
    

答案 1 :(得分:1)

看看

http://developer.apple.com/library/ios/#documentation/cocoa/Conceptual/ObjectiveC/Articles/ocDefiningClasses.html

关于“引用其他类”的部分。

  

如果接口提到不在此层次结构中的类,则必须显式导入它们或使用@class指令声明它们

在您的情况下,这意味着您必须插入

@class MyTableViewController;

在声明界面之前。