【问题标题】:Xcode 4 compiler doesn't see my instance variableXcode 4 编译器看不到我的实例变量
【发布时间】:2011-04-10 15:59:15
【问题描述】:

所以我在 iPhone 上工作,一切进展顺利。除了最后两个小时。我正在编辑一些类,然后保存并构建,突然在另一个类实现文件中出现大量错误。似乎所有错误都与类成员(变量)有关,因为我唯一的错误是“对象未声明”,这些对象是类成员。语法没问题,所以我相信它不是那样的。以前有人遇到过这个问题吗?

例子:

Foo.h

@interface Foo : NSObject
{
@private
    int m_1;
    NSString *m_2;
    NSDictionary *m_3;
}

-(id) init;
-(void) dealloc;
-(int) bar;
-(int) barWithFoo:(Foo *)foo;

@end

Foo.m

#import "Foo.h"

@implementation Foo

-(id) init
{
    return self = [super init]; 
}

-(void) dealloc
{
    // code
}

-(int) bar
{
    if (m_1 > MAX_DECL) /* error here, m_1 undeclared */
    {
        // do stuff
    }

    NSLog(m_2); /* error here, m_2 undeclared */
}

// etc...

@end

【问题讨论】:

  • 您能在搜索路径中的某处再添加一个Foo.h 吗?
  • 你能用你为你的问题编写的代码重现问题吗?如果没有,我们需要查看产生错误的实际代码。
  • 另外,请注意 Xcode 4 在 NDA 下,所以我们不能在这里谈论它。如果其中有什么问题,请在 Xcode 3 中尝试,如果可行,您应该提交一个关于 4 的错误。bugreport.apple.com

标签: iphone objective-c xcode xcode4


【解决方案1】:

有点不具体的问题,很难提供此信息的帮助...但是,我会检查#import 声明以确保包含所有文件。另外,请确保您没有重命名类(可能是拼写错误)并且 .h 中的声明和 .m 中的定义具有相同的名称。

【讨论】:

  • 是的,我检查了所有#import 声明并且名称正确。这些文件也位于正确的文件夹中,我正在编辑正确的文件。我不能真正发布我的整个班级实现文件,但基本上就像我所描述的那样,顺便说一句,我已经编辑了 OP。
  • 我猜你已经尝试过完全重建,不是吗?手动清除所有临时文件。
  • 是的,我已经清理了所有目标并重建了几次。
  • 尝试本地化问题。从项目中删除“问题”类(将其替换为空白)并检查项目是否会编译。如果是 - 将问题类插入新的空项目并逐步检查。
  • 这听起来很愚蠢,但我只是备份文件的内容,删除它们,保存它们,然后将它们恢复到我所做的备份,现在它可以工作了!怎么回事?感谢您的帮助:)
猜你喜欢
  • 2013-03-15
  • 2019-01-31
  • 1970-01-01
  • 1970-01-01
  • 2023-04-05
  • 1970-01-01
  • 2011-05-25
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多