【问题标题】:Objective C scope problemObjective C 范围问题
【发布时间】:2010-10-11 01:52:09
【问题描述】:

我有以下正常工作的 Obj C 函数:

 NSString* myfunc( int x )
 {
    NSString *myString = @"MYDATA";

    return myString;        
 }

但是,如果我添加代码来更新 UIImage,编译会失败,因为 image1 是未知的。 image1 是有效的:它是在 .h 中设置的,经过合成,并且那行代码可以正常工作 在此函数下方的方法中。只有当我将代码行移至此函数时,它才会失败。

 NSString* myfunc( int x )
 {
    NSString *myString = @"MYDATA";
    image1.image = [UIImage imageNamed:@"image1.png"];  // fails to compile
    return myString;        
 }

不应该在此特定 .m 文件中的任何位置识别 image1 吗?

【问题讨论】:

    标签: objective-c function scope methods


    【解决方案1】:

    myfunc 在这里是一个 C 风格的函数,而不是你类范围内的 Objective-C 方法,所以你看不到你的实例变量 image1。

    您想将其声明为方法:

    - (NSString *)myFuncWithParam:(int)x
    {
      ...
    } 
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-01-08
      • 1970-01-01
      • 2012-08-13
      • 1970-01-01
      • 2016-06-21
      • 2011-07-07
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多