非常基本的东西,但我无法解决问题所在。在我的项目中,我有一个名为“TheFeedStore”的类,具有以下两种方法:
- (BOOL)hasItemBeenRead:(RSSItem *)item
{
............
}
- (void)markItemAsRead:(RSSItem *)item
{
.........
}
我正在使用以下类方法,因此其他类可以使用它访问这些方法:
+ (TheFeedStore *) sharedStore
{
static TheFeedStore *feedStore = nil;
if (!feedStore) {
feedStore = [[TheFeedStore alloc] init];
}
return feedStore;
}
在我的另一堂课中,我可以通过编写轻松访问上述方法
if ([[TheFeedStore sharedStore] hasItemBeenRead:item])
或者
[[TheFeedStore sharedStore] markItemAsRead:entry];
但是在另一个类中,如果我尝试以类似方式访问这些方法,我会收到错误消息“'TheFeedStore' 的无可见 @interface 声明选择器'hasItemBeenRead:”
1)我已经在类中导入了 TheFeedStore.h 文件,我正在访问 TheFeedStore 类的这些方法。
2)我检查了 10 次,没有错字。
3) 我正在访问的方法也在 TheFeedStore.h 的头文件中声明
更新:为了检查,我在 TheFeedStore.h 中声明了另一种测试方法,结果相同,一个类可以访问新创建的方法,而其余三个类不能。
更新:我尝试在 TheFeedStore.h 中创建更多方法来解决此问题。其他类也无法访问新方法。但是,如果这些新方法的返回类型是 (RSSChannel*),它是我项目中的另一个模型类,那么它们就可以访问了。如果它们的返回类型不是 (void) 和 (BOOL) 之类的类,则它们不可访问。这是我的 TheFeedStore.h https://gist.github.com/jessicamoore112/5558473