0

私はObjectiveCとXcodeの初心者なので、正しい専門用語の使用法の間違いはご容赦ください。

私は新しいプロジェクトを作成し、appdelegate(.hおよび.mファイル)を持っています。アプリデリゲートには、いくつかの変数(設定)があります。変数の1つはmainImageです。どのViewControllerからでもアクセスできるようにしたいので、appdelegateに入れました。

MainViewController(.hおよび.mファイル)と呼ばれるビューコントローラーを追加しました。MainViewController(.m)には、いくつかのカスタムメソッドがあります。viewDidLoadメソッドに次のコードがあります

MyAppDelegate *appDelegate = (MyAppDelegate *)[[UIApplication sharedApplication] delegate];
[currentImage setImage:appDelegate.mainImage];

質問:

MainViewControllerのどのメソッドでも、「mainImage」を読みたいときはいつでも、上記の2行を実行する必要があります。

.mファイルに一度実行できる場所があり、そのファイルのすべてのメソッドで使用できますか?

よろしくお願いします、プラサド。

4

3 に答える 3

0

MainViewControllerで、タイプUIImageまたはそれが何であれオブジェクトを返す2行のメソッドを記述し、それを呼び出すことができます。呼び出しは次のよう[self mainImage]になり、メソッドシグネチャはになります- (UIImage *)mainImage

于 2012-09-27T18:32:58.983 に答える
0

MainViewController例として、次の2行をのviewDidLoadメソッドに入れることができます。

MyAppDelegate *appDelegate = (MyAppDelegate *)[[UIApplication sharedApplication] delegate];
[currentImage setImage:appDelegate.mainImage];

これは1回実行され、currentImageコンテンツが必要になるたびに、次のように呼び出します。

UIImage *img= [[UIImage alloc]init];
img = self.currentImage;

currentImageがでプロパティとして宣言されていると仮定しますMainViewController

于 2012-09-27T19:12:09.183 に答える
0

@Mallocと@jack...それは私が必要としていたものにかなり近いものでした..それにもかかわらず、私はかなりの数のプロパティを持っています..したがって、ヘッダーファイルに呼び出しを含めることを終了しました...

#define appDelegate ((MyAppDelegate *)[UIApplication sharedApplication].delegate)

次に、appDelegate.any_of_my_propertiesを呼び出します。

私のC#の経験から、アプリデリゲートにグローバル変数を含めて、この方法で参照するのはおそらく悪い習慣であることがわかっています。ただし、今回は、オブジェクトが実際に関連付けられていないことを考えると、理にかなっていると思います。実際には、特定のビューコントローラー(画像は単なる例です)に..私はいくつかの動的な値ホルダーを持っています。

于 2012-09-27T19:27:15.700 に答える