非常基本的东西,但我无法解决问题的所在。 在我的项目,我有一个名为“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 *),这是在我的项目的另一个模型类,比他们成为访问。 如果他们的返回类型是不是像(无效)和(BOOL)一些其他类那么他们就无法访问。 这里是我的TheFeedStore.h https://gist.github.com/jessicamoore112/5558473
你说你正在使用@class代替#进口在你的头文件,您试图访问的方法在头文件中声明,也没有任何形式的错别字。
在这种情况下,通常没有身体方面的看法,但我打算无论如何做,因为我曾经面临这样的问题很多次。 您可能已经创建项目的多个副本,在每个功能,还保持一个工作项目。
当你做到这一点,有时Xcode中仍然使用的几个文件的较旧的副本。 这意味着它依然采用了TheFeedStore.h的旧副本,当您试图访问的方法不是由您声明。
如何解决这个问题很简单。 转到从中您试图访问的方法和在这些方法中声明的文件的文件。
在右侧的工具部分中,检查“身份和类型”区域的位置和完整路径。
首先检查该项目的名称,如果是从你正在从事的项目名称不同,这意味着Xcode中仍然是拉动该文件的旧副本从您的项目以前的版本。 看到蓝色箭头,其中项目名称是13SampleMoreRequests在我的情况。
如果该名称与您的项目名称,然后我的回答没有解决您的问题。 如果它的不同,你应该使用由红色箭头指出了标志浏览新的位置使用文件的新副本。
一旦你浏览和使用新的文件,您的问题将得到解决,你将能够访问的方法。 如果还是不行,复制这些文件,从项目中删除,然后重新添加它们,你就不会面临这个问题。
希望这可以帮助!
周期性进口,如Ah
进口Bh
,同时也Bh
进口Ah
是最常见的问题。
在C语言中,周期性的进口量将无法正常工作和进口的人会被忽略。 请确保您不具有周期性的进口。 如果这样做,(例如,使用前向声明)解决它。
导入的问题也能够容易地检查,如果你产生预处理输出(你可以找到它在Xcode菜单中的一个)。
这可能听起来很傻,但我偶尔也有类似的情况下,有时只是简单的退出并开始Xcode的帮助,有时往往会被卡住。 此外,有时清洗项目的帮助。 因为我有非常类似你单身的代码,它工作正常。
家伙我曾遇到完全相同的问题。 在SO一些搜索和搜索引擎后,我能解决这个问题。
在我来说,我有四个文件:
- RadioStation.h
- RadioStation.m
- ViewController.h
- ViewController.m
我的错误是把我在RadioStation.m所有方法,只穿上radioStation.h我的变量,所以,当我输入radioSation.h我ViewController.m并尝试定义方法在我的应用程序这也正是问题的开始按钮,单击。 我得到了错误/警告“ARC语义问题:对于类无可见@interface声明选择”每次我建或运行应用程序模拟器时间。
我的解决办法是回到RadioStation.h文件,只是申报我所有的方法在那里。 因为他们已经在RadioStation.m定义我是好去。
所以一定要确保你已经正确声明您对将要在你的viewControllers导入的文件的方法。 希望帮助。
在我来说,我有一些非常奇怪的路径条目
(目标 - > YOUR_APP_NAME - >建立在“搜索路径”设置部分)
我删除他们的错误信息都没有了。