-1

実行される最初のインスタンスで一部のデータを保存するコードがあります。ただし、このクラスの 2 番目のインスタンスは別のメソッドを呼び出し、代わりに最初のインスタンスからこのデータを出力する必要があります。extern と static を試しましたが、どちらも機能しません。これは可能ですか?

コード.h:

extern NSString GlobalID
@interface ...
@end

コード.m:

#import code.h
    @implementation NSString *GlobalID;
    -dostuff1: {GlobalID=@"text"}
    -dostuff2:  {NSLog(@"%@",GlobalID)}

    @end
4

1 に答える 1

1

探しているのはインスタンス変数ではありません。グローバルクラス変数が必要です。それらは次のように作成できます。

// code.m
#import "code.h"

static NSString *global_string = nil;
@implementation code
...
@end

global_stringそうすれば、クラスのどこからでも編集できます。

キーワードstaticは、変数が1回だけ作成され、インスタンス間およびその他のほぼすべての値を保持することを意味します。このキーワードexternは、別のモジュールのグローバル(非静的)変数を参照する場合に使用されます。static明らかな理由から、変数を使用することはできずextern、その逆もできないことに注意してください。

于 2012-07-29T05:47:41.580 に答える