没有findios类“预期types”

我在FooterSelectorView.h遇到了两个问题,我不知道为什么。 一个是警告,另一个是错误。 出于某种原因xcode不能识别FooterArchiveItemView所以我不能input我的对象,因为这是导致其他propblems。 有没有人见过这样的事情? 我该如何解决?

FooterSelectorView.h

 #import <UIKit/UIKit.h> #import "FooterArchiveItemView.h" @interface FooterSelectorView : UIImageView // #warning Type of property 'activeItem' does not match type of accessor 'setActiveItem:' @property (nonatomic, retain) FooterArchiveItemView *activeItem; // #error Expected a type - (void)setActiveItem:(FooterArchiveItemView *)activeItem_; - (void)update; - (CGPoint)absoluteCenterOf:(UIView *)obj; @end 

相关类

FooterArchiveItemView.h

 #import <UIKit/UIKit.h> #import "AutosizeableView.h" #import "FooterArchiveView.h" typedef void (^ DayBlock)(void); @interface FooterArchiveItemView : AutosizeableView { DayBlock dayBlock; } @property (nonatomic, retain) IBOutlet UIButton *day; @property (nonatomic, retain) IBOutlet UIImageView *bullet; - (void)setDayBlock:(DayBlock)block; @end 

AutosizeableView.h

 #import <UIKit/UIKit.h> @interface AutosizeableView : UIView @end 

有一件事我build议你符合Obj-C的做法,那就是在标题接口文件中,而不是导入自定义的类,你向前声明它们。 例如,在FooterSelectorView.h中,而不是:

 #import "FooterArchiveItemView.h" 

向前宣布class级:

 @class FooterArchiveItemView 

然后,在实现文件(FooterSelectorView.m)中,导入。 在这种情况下观察练习可能并不能真正解决你的问题(我不知道到底发生了什么,我个人希望看到更多的代码来冒险猜测),但它可能有助于为你解决问题。

这个规则的例外是苹果的框架 – 这些框架被导入到标题中。