目标C - 为什么在main中不能识别实现部分中声明的实例变量?

时间:2012-10-04 21:26:37

标签: objective-c

在实现部分中,我声明了变量:

double n_YTD_t;

主要:

NSLog(@"New YTD Sales are: %f ", n_YTD_t);

生成以下错误:

  

使用未声明的标识符:'n_YTD_t'

2 个答案:

答案 0 :(得分:1)

main没有任何对象可供访问。您需要提供班级的实例:

int main(int argc, char **argv)
{
    ...
    MyClass *obj = [[MyClass alloc] init];
    NSLog(@"New YTD Sales are: %f ", obj.n_YTD_t);  // assuming it's a property
    ...
}

答案 1 :(得分:0)

在对象的完全不相关的实现文件中声明n_YTD_t。该变量超出main的范围;你必须实例化你的类的实例,并从中获取变量,如果它是一个实例变量。如果它是全局的和文件范围的,那么您需要导入声明它的文件。

您应该考虑查看Apple's Documentation on Objective-C,查看教程(like these ones for iOS development)和read a good book,因为您似乎不了解该语言的基础知识。