Почему я получаю эту ошибку "ошибка: ожидаемый список спецификаторов-спецификаторов перед MyTableViewController - PullRequest
0 голосов
/ 15 октября 2010

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 ]

1 голос
/ 15 октября 2010

Посмотрите на

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

часть о "Ссылка на другие классы".

Если интерфейс упоминает классы, не входящие в эту иерархию, он должен явно импортировать их или объявить их с помощью директивы @class

В вашем случае это будет означать, что вы должны вставить

@class MyTableViewController;

до объявления интерфейса.

1 голос
/ 15 октября 2010

MyTableViewController не объявляется, где вы его используете, поэтому компилятор не может знать, как обращаться с этим именем.У вас есть 2 варианта, как это исправить:

  1. просто импортируйте MyTableViewController.h в ваш файл SQLLiteDemoAppDelegate.h
  2. , используйте объявление forward в вашем классе заголовка и импортируйте SQLLiteDemoAppDelegate.h в .m файле:

    //SQLLiteDemoAppDelegate.h
    @class MyTableViewController;
    @interface SQLLiteDemoAppDelegate : NSObject <UIApplicationDelegate> {
    ...
    
    
    //SQLLiteDemoAppDelegate.m
    #import "MyTableViewController.h"
    ...
    
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...