Iphone 为什么不同文件夹中的类无法访问我的属性

Iphone 为什么不同文件夹中的类无法访问我的属性,iphone,objective-c,xcode4.2,Iphone,Objective C,Xcode4.2,我注意到一些非常奇怪的事情 我有一个a级,有一个属性: @interface ClassA @property (nonatomic, strong) NSString *test; 和.m文件中的合成 现在,如果我有第二个B类,如下所示: #import "ClassA.h" -(void) someMethod { ClassA *classA = [[ClassA alloc] init]; classA.test = @"test"; } 如果这

我注意到一些非常奇怪的事情

我有一个a级,有一个属性:

 @interface ClassA
 @property (nonatomic, strong) NSString *test;
和.m文件中的合成

现在,如果我有第二个B类,如下所示:

 #import "ClassA.h"

 -(void) someMethod
 {
      ClassA *classA = [[ClassA alloc] init];
      classA.test = @"test";
 }
如果这两个类文件位于同一文件夹中,则此操作效果良好

但是,如果我将文件移动到单独的子文件夹,它将不再工作。 我得到的错误是该属性不存在。类似地,“intellisense”将不再显示测试属性

如果我在xcode中创建文件夹组,但将实际文件保留在同一个物理文件夹中,它确实可以工作

这是怎么回事

这不可能是一个包含路径问题,因为那时我甚至无法实例化ClassA。

已经尝试过Xcode菜单“product:clean”


我会试着从模拟器中删除你的应用程序,还有Xcode:preferences:locations:derived data->from finder删除那个finder文件夹 在iOS模拟器中重置内容和设置


你试过@class ClassA吗?

我解决了。我有一个包含的子项目,它使用了一个名称完全相同的类。 aaaargh


显然,编译过程中没有错误,也不清楚它将导入哪些文件。

您是否尝试过清理项目,然后构建?您应该能够做到这一点,这是非常奇怪的行为。您在导入中尝试过在空“”中按ctrl+space吗?我尝试过清理、重新启动xcode和点击ctrl-space。它不会显示属性。如果我对这个类进行子类化,我会看到子类中的属性。非常奇怪。生成ClassB的预处理文件(Product->Generate Output->preprocessed file in Xcode 4)以查看是否导入了正确的ClassA.h。问题是否仅在移动类时出现,还是在最初在不同文件夹中创建类时也会出现?清理解决方案无法解决问题。重置模拟器与编译器无关。只有在不想导入类定义的情况下,在.h文件中添加@class才有好处。