【问题标题】:error instantiating other view controllers实例化其他视图控制器时出错
【发布时间】:2011-08-15 17:19:49
【问题描述】:

我确信这真的很愚蠢,但我似乎无法理解为什么会出现此错误。在我的项目中,我有一个视图控制器和另一个执行一些数据结构工作的类(无论如何都不相关)。尝试在我的类中实例化它时出现编译错误:“未知类型名称”视图控制器“”。

这是我的课.h:

#import <Foundation/Foundation.h>
#import <MapKit/MapKit.h>
#import "MyLocationController.h"
#import "GetZip.h"
#import "SecondTab.h"

 @interface DataEngine : NSObject <MyLocationControllerDelegate, MKMapViewDelegate, GetZipcodeDelegate> {

MyLocationController *CLController;
GetZip *getzip;
SecondTab *secondTab; //ERROR IS HERE

}

我的视图控制器.h:

#import <UIKit/UIKit.h>
#import "FirstTab.h"
#import "DataEngine.h"

@interface SecondTab : UIViewController <UITableViewDelegate, UITableViewDataSource> {

IBOutlet UITableView *table1;
NSString *address; 
NSDate *time;
NSDictionary *dataDict;
  DataEngine *fullData;

}

(我省略了所有@synthesis,因为我认为它们无关紧要......无论如何,我对所有内容都使用@property(非原子,保留)。

知道这里会出什么问题吗?

【问题讨论】:

    标签: iphone objective-c xcode uiviewcontroller


    【解决方案1】:

    你为什么不尝试转发声明它。使用@class secondTab 而不是#import secondTab?如果这是问题,它将有助于避免任何循环包含。

    【讨论】:

    • +1 谢谢,Manish。这似乎在做这项工作!知道可能出了什么问题吗? (@class 和 #import 之间的区别是什么?:/)。
    • stackoverflow.com/questions/322597/class-vs-import 你可能有一个循环依赖,两个类相互依赖。无论如何,Tommy,使用前向声明来避免这些问题总是好的。
    • 现在我似乎无法允许 + init SecondTab ......这是预期的吗?
    • 您需要在实现文件(.m 文件)中导入 SecondTab
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-10-20
    • 2016-08-23
    • 2015-03-24
    • 2015-04-05
    • 1970-01-01
    • 2017-07-24
    相关资源
    最近更新 更多