1

次の問題は、1 つのボタンがタッチされたときに 1 つのビューを作成することです。ビューが作成されてロードされると、ASIFormDataRequest1 つのイメージをダウンロードするための 1 つのリクエストと、テキストを取得するためのもう 1 つのリクエストで 2 つのリクエストを作成します。

ボタンを押すとスーパービューからビューが削除されるため、ビュー内のユーザーが選択をロードすると頭痛の種になりますが、1つのリクエストコールバックが来てビューが存在しない場合はクラッシュします。私はそれを修正します。

クラッシュはコードの次の行にあります

クラス: ASIHTTPRequest.m

    BOOL dataWillBeHandledExternally = NO;
    **if ([[self delegate] respondsToSelector:[self didReceiveDataSelector]]) {**
        dataWillBeHandledExternally = YES;
    }

あり:スレッド 6: EXC_BAD_ACCES (コード = 1、アドレス = 0x30047dbc)

私を悩ませていることを助けてください。

4

2 に答える 2

3

ASIHTTPRequestビューをポップするときに、保留中のものを確実にキャンセルしたいと考えています

// Cancels an asynchronous request, clearing all delegates and blocks first
[request clearDelegatesAndCancel];
于 2012-05-13T05:22:53.047 に答える
1

これには try catch を使用できます。以下は、ASIHTTPRequest.m でできることです。

@try {
        if ([[self delegate] respondsToSelector:[self didReceiveDataSelector]]) {
            dataWillBeHandledExternally = YES;
        }
    }
    @catch (NSException *exception) {
        dataWillBeHandledExternally = NO;
    }
于 2015-08-31T13:38:36.460 に答える