发布视图时代理崩溃,因为找不到

时间:2012-05-13 05:17:42

标签: iphone objective-c ios ipad

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

当加载视图中的用户选择返回时会出现头痛,因为如果按下按钮后退视图将从超视图中删除,但如果一个请求回调即将到来并且视图不存在则崩溃怎么能这样做取消请求或者我该如何解决这个问题。

崩溃发生在下一行代码

班级:ASIHTTPRequest.m

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

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

请问那些困扰我的人。

2 个答案:

答案 0 :(得分: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];

答案 1 :(得分:1)

您可以使用try catch。以下是你在ASIHTTPRequest.m

中的表现
@try {
        if ([[self delegate] respondsToSelector:[self didReceiveDataSelector]]) {
            dataWillBeHandledExternally = YES;
        }
    }
    @catch (NSException *exception) {
        dataWillBeHandledExternally = NO;
    }