UIViewController类的未知类型名称

时间:2015-05-28 06:50:47

标签: ios objective-c uiview uiviewcontroller uinavigationcontroller

我在下面有一个名为UIView的子TestView.h

#import <UIKit/UIKit.h>
#import "TestsViewController.h"

@interface TestView : UIView

// To get the navigation controller parent clas
@property (nonatomic, retain) TestsViewController *parent;
  

上面的行导致错误:未知的类型名称TestViewController:你的意思是CostViewController

- (id) initWithFrame:(CGRect)frame andObjects:(PFObject *)objects;

@end

我有以下TestsViewController.h

#import "CostViewController.h"
#import "TesView.h"

@interface TestsViewController : UIViewController <UITextViewDelegate, CostViewControllerDelegate, UIScrollViewDelegate>

@end

TestsViewController.m的实施文件中,我称之为:

TestView *tests = [[TestView alloc] initWithFrame:frame andObjects:replies];
tests.parent = self;

但上面的一行给出了一个错误:

  

从TestsViewController *

分配给CostsViewController *的不兼容指针类型

这有什么问题?

CostViewController.h是:

#import <UIKit/UIKit.h>
#include <stdlib.h>

@class CostViewController;

@protocol CostViewControllerDelegate <NSObject>

// Functions for delegate

@end

@interface CostViewController : UIViewController <UIImagePickerControllerDelegate, UINavigationControllerDelegate, UITextViewDelegate, MBProgressHUDDelegate>
{
    MBProgressHUD *HUD;
    MBProgressHUD *refreshHUD;
}

@property (nonatomic, weak) id <CostViewControllerDelegate> delegate;

@end

感谢。

3 个答案:

答案 0 :(得分:3)

这可能是由于循环导入。 用#class TestsViewController替换#import“TestsViewController.h”

答案 1 :(得分:0)

您可以在TestsViewController.m中使用loadView方法代替下面的代码 -

TestView *tests = [[TestView alloc] initWithFrame:frame andObjects:replies];
tests.parent = self;

-(void)loadView
{
  self.view= [[TestView alloc] initWithFrame:frame andObjects:replies];
}

希望这有帮助!

答案 2 :(得分:0)

好像你的代码中有拼写错误。

  

@property(非原子,保留)测试 s ViewController

  

未知类型名称TestViewController:

你的班级名字是什么?测试或测试? 与其他班级相同的情况

  

@interface CostViewController

  

分配给Cost s ViewController

的不兼容指针类型