【问题标题】:ios class not found "Expected a type"找不到 ios 类“预期类型”
【发布时间】:2012-03-25 08:03:22
【问题描述】:

我的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

相关类

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

【问题讨论】:

    标签: ios ios5 xcode4.2


    【解决方案1】:

    我建议您遵守 Obj-C 实践,即在头接口文件中,而不是导入自定义类,而是前向声明它们。例如,在 FooterSelectorView.h 中,而不是:

    #import "FooterArchiveItemView.h"
    

    前向声明类:

    @class FooterArchiveItemView
    

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

    值得注意的例外是 Apple 的框架——它们被导入到标头中。

    【讨论】:

    • 我试过这个没有成功,然后我只是把它添加到一些类中,但仍然没有。但是,然后我注释掉了所有的类声明并且它起作用了。太奇怪了.. -- 这只是一个最佳实践还是什么?
    • 很高兴它把你带到了某个地方,这里有几个很好的解释:stackoverflow.com/questions/322597/class-vs-import
    • 前向声明比头文件中的导入安全得多,除非您以循环引用不会导致问题的方式安全地构建头文件(头 A 导入类 B,头 B 导入类一种)。我认为这是通过前向声明解决的,其中标头(在 .m 文件中导入)本身没有进行任何导入,这意味着它们不会陷入循环。
    • 谢谢,这是我的问题的解决方案。我有一个未找到标识符的异常。通过删除#import 并添加@class,问题就解决了。
    猜你喜欢
    • 1970-01-01
    • 2021-10-10
    • 1970-01-01
    • 2014-11-20
    • 1970-01-01
    • 2021-01-17
    • 2020-10-13
    • 2021-09-01
    • 2021-03-11
    相关资源
    最近更新 更多