Objective c NSViewController子类故障
我已经创建了一个名为Objective c NSViewController子类故障,objective-c,osx-mountain-lion,xcode4.4,Objective C,Osx Mountain Lion,Xcode4.4,我已经创建了一个名为TSCollectionViewController的NSCollectionViewItem子类。它覆盖了一个方法,setRepresentedObject:。我计划在我的NSView,TSTopChartView中使用它。奇怪的是,当我将它添加到TSTopChartView.h文件(如下图所示)时,我得到了一个错误。 显然,Xcode不喜欢此文件的TSCollectionViewController。我就是不明白为什么!我已导入该文件,因此它不应该是未知的类型名。有什么
TSCollectionViewController
的NSCollectionViewItem
子类。它覆盖了一个方法,setRepresentedObject:
。我计划在我的NSView
,TSTopChartView
中使用它。奇怪的是,当我将它添加到TSTopChartView.h
文件(如下图所示)时,我得到了一个错误。
显然,Xcode不喜欢此文件的TSCollectionViewController
。我就是不明白为什么!我已导入该文件,因此它不应该是未知的类型名。有什么想法吗?谢谢你抽出时间
以下是TSCollectionViewController.h:
#import <Cocoa/Cocoa.h>
#import "TSTopChartCell.h"
#import "TSPodcastEpisodeCell.h"
#import "TSDetailView.h"
@interface TSCollectionViewController : NSCollectionViewItem
@end
#导入
#导入“TSTopChartCell.h”
#导入“TSPodcastEpisodeCell.h”
#导入“TSDetailView.h”
@接口TSCollectionViewController:NSCollectionViewItem
@结束
您在TSCollectionViewController.h和TSTopChartView.h之间有一个循环的导入依赖关系。在您的情况下,您可以通过从TSCollectionViewController.h中删除#import“TSTopChartCell.h”
来轻松地破坏它
如果您最终需要在TSCollectionViewController.h中声明类
TSTopChartCell
,您可以通过添加@class-TSTopChartCell
而不是导入“TSTopChartCell.h”来解决此问题。然后您可以在实现文件中导入“TSTopChartCell.h”,TSCollectionViewController.m.将有助于查看TSCollectionViewController.h。在.h文件中没有什么有趣的内容。我只是导入一些文件。尽管如此,我还是用代码更新了帖子。清理并重建了项目吗?而且你还需要修改你的项目,在视图类中有控制器是一个不好的做法:)控制器应该有视图和模型的引用。哇,我甚至都没意识到这一点。谢谢你指出这一点!我还在学这些东西;)