0

アプリの UI を表示する「MainUI.m」というメインの「クラス」/ビュー コントローラーがあります。このビュー コントローラー内で、「DoActivity.m」という別のクラスのインスタンスを宣言したので、MainUI 内で「getFeed」というメソッドの 1 つを呼び出すことができます。メソッドが終了する前に、MainUI から画像を更新する必要があります。そして、この方法が再び繰り返されます。私の問題は、メソッド内の UI を更新するたびにアプリがクラッシュすることです。

MainUI* mu = [[MainUI alloc] init];   

-(void)getFeed{
//some tasks here

mu.imageView.image= imageInDoActivity.image;
}

編集

エラーは次のように言います

Thread 1: Program recieved signal:'EXC_BAD_ACCESS' 

このコード行で強調表示されます。

mu.imageView.image= imageInDoActivity.image;

編集

DoActivity に MainUI プロパティがあります。

@property MainUI* mu;

しかし、私の DoActivity コンストラクターでは、上記のプロパティを初期化しませんでした。代わりに、doAct がある MainUI で [self.doAct getFeed] を呼び出す前に、

@property DoActivity* doAct;

設定しました

self.doAct.mu = self;

これにより、DoActivity はそれを呼び出したクラスの UI を更新する必要があることがわかります。

これを修正するにはどうすればよいですか?

4

1 に答える 1

2

メインスレッドで UI を行う必要があります。

-(void)getFeed{
    //some tasks here

    dispatch_async(dispatch_get_main_queue(), ^{
        mu.imageView.image= imageInDoActivity.image;
    });
}

これが本当にクラッシュの原因であるかどうかはわかりません。クラッシュログは本当に役に立ちます。

于 2013-11-13T12:49:58.817 に答える