1

我有下一个问题,我在触摸一个按钮时创建一个视图。创建和加载视图时,我发出 2 个请求,ASIFormDataRequest一个请求下载一个图像,另一个请求获取一些文本。

当视图中的用户加载选择返回时,头痛就变成了,因为如果按下按钮返回,视图将从超级视图中删除,但是如果一个请求回调即将到来并且视图不存在,我该怎么做才能取消请求,或者怎么能我解决这个问题。

崩溃在下一行代码中

类:ASIHTTPRequest.m

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

使用:线程 6:EXC_BAD_ACCES(代码 = 1,地址 = 0x30047dbc)

请让我一直困扰着。

4

2 回答 2

3

您要确保ASIHTTPRequest在弹出视图时取消任何待处理:来自:http ://allseeing-i.com/ASIHTTPRequest/How-to-use#cancelling_an_asychronous_request

// 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 回答