0

適切に動作する次の 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;        
 }

image1 は、この特定の .m ファイル内のどこでも認識されるべきではありませんか?

4

1 に答える 1

8

myfuncここでは C スタイルの関数であり、クラス スコープの Objective-C メソッドではないため、インスタンス変数 image1 は表示されません。

メソッドとして宣言したい:

- (NSString *)myFuncWithParam:(int)x
{
  ...
} 
于 2009-03-03T17:39:21.883 に答える