ASIHTTPRequest取消异步请求

取消异步请求

    

   首先,同步请求是不能取消的。

    

   其次,不管是队列请求,还是简单的异步请求,全部调用[ request cancel]来取消请求。取消的请求默认都会按请求失败处理,并调用请求失败delegate

    如果不想调用delegate方法,则设置:[request clearDelegatesAndCancel];

    

    队列请求中需要注意的是,如果你取消了一个请求,队列会自动取消其它所有请求。如果只想取消一个请求,可以设置队列:[queue setShouldCancelAllRequestsOnFailure:NO ]; 如果想明确取消所有请求:[queue cancelAllOperations ];

    

   安全的内存回收建议

    

   request并没有retain你的delegate,所以在没有请求完的时候释放了此delegate,需要在dealloc方法里先取消所有请求,再释放请求实例,如:

    

    - (void)dealloc

    {

       [request clearDelegatesAndCancel];

       [request release];

       ...

       [super dealloc];

    }


你可能感兴趣的:(ASIHTTPRequest取消异步请求)