我的FooterSelectorView.h
遇到两个问题,我也不知道为什么。一个是警告,而另一个是错误。由于某些原因,xcode无法识别FooterArchiveItemView
,因此我无法将我的对象键入引起其他问题的对象。以前有没有人看过这样的东西?我该如何解决?
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
相关 class
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
最佳答案
我建议的一件事是,您符合Obj-C的惯例,即在标头接口文件中而不是导入自定义类,而是对它们进行前声明。例如,在FooterSelectorView.h中,而不是:
#import "FooterArchiveItemView.h"
向前宣告 class :
@class FooterArchiveItemView
然后,在实现文件(FooterSelectorView.m)中导入。在这种情况下,遵守惯例可能并不能真正解决您的问题(我不知道到底是怎么回事,我个人想看一点代码来冒险),但这可能有助于您解决问题。
Apple的框架是该规则的显着例外-将其导入到标头中。
关于ios - 找不到ios类别“预期类型”,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9607489/