我导入PaiLifeCardLeftViewController.h,但Xcode告诉我这是一种未知类型。
我该如何解决这个问题,谢谢。
编辑:PaiLifeCardLeftViewController.h:
答案 0 :(得分:3)
此问题是由PaiLifeCardLeftViewController
和PaiLifeCardCenterViewController
之间的循环依赖引起的。每个相应的.h文件都试图导入另一个.h文件。你不能这样做。
正确的解决方案是更新两个.h文件。在两者中,删除另一个.h的导入,并用@class
前向声明替换它。
PaiLifeCardLeftViewController.h:
#import <UIKit/UIKit.h>
#import "PaiLifeCardRefreshDelegate.h"
@class PaiLifeCardCenterViewController;
@interface PaiLifeCardLeftViewController : UITableViewController
@property (strong, non atomic) id<PaiLifeCardRefreshDelegate> delegate
@end
对PaiLifeCardCenterViewController.h
进行类似的更改。
然后,您必须将导入添加到.m文件。
您应该尽可能少地导入.h文件中的导入。在可能的情况下使用前向(@class
)声明总是更好。它避免了循环依赖,它使编译速度更快,并且在更改.h文件时导致更少的重新编译。
侧面 - 注意。无需为delegate
声明实例变量。它将为您合成。
答案 1 :(得分:1)
您可以通过添加
向班级发出前瞻性声明 @class PaiLifeCardCenterViewController
@interface
陈述之前。