Я предполагаю, что вы говорите о проекте facebook-ios-sdk и об отсутствии метода отмены в Facebook.h.Я также заметил это и в конце концов решил добавить свой собственный метод отмены.Просто отметим, что делегат, который вы назначаете для запроса, никогда не должен быть delocloc'd и затем ссылаться на него, потому что запрос сохраняет делегата.См. этот похожий вопрос .Теперь, если вы действительно нуждаетесь в методе отмены по какой-то другой причине ...
Добавление метода отмены:
Запросы Facebook выполняются непрозрачным способом.Вы никогда не видите их, а слышите о результатах только через класс Facebook
.Внутри класса Facebook
запросы API-интерфейса Graph выполняются с классом FBRequest
(не для общего пользования).Этот класс - в основном причудливый NSURLConnection
делегат.Таким образом, чтобы отменить запрос, члену NSURLConnection
нужно просто сообщить cancel
.Добавление этого метода в FBRequest:
// Add to FBRequest.h
- (void)cancel;
И ...
// Add to FBRequest.m
- (void)cancel {
[_connection cancel];
[_connection release], _connection = nil;
}
Теперь, чтобы предоставить интерфейс в классе Facebook для использования нового метода ...
// Add to Facebook.h
- (void)cancelPendingRequest;
И ...
// Add to Facebook.m
- (void)cancelPendingRequest {
[_request cancel];
[_request release], _request = nil;
}
Это все, что нужно сделать.Приведенный выше метод отменяет самый последний запрос, и вы никогда не получите от него ответа.