Как отменить загрузку видео в процессе использования SDK Facebook iOS? - PullRequest
1 голос
/ 10 ноября 2011

Я использую Facebook iOS SDK для публикации видео из моего приложения на Facebook пользователя.

Я пытаюсь разрешить пользователю отменить загрузку после начала загрузки.

Вот методы, которые запускают загрузку:

- (void)startUpload
{   
    NSArray* permissions = [[NSArray alloc] initWithObjects:
                            @"publish_stream", nil];
    [facebook authorize:permissions];
    [permissions release];
}

- (void)fbDidLogin
{
    NSString *filePath = [videoNSURL path];

    NSData *videoData = [NSData dataWithContentsOfFile:filePath];
    NSMutableDictionary *params = [NSMutableDictionary dictionaryWithObjectsAndKeys:
                                   videoData, @"video.mov",
                                   @"video/quicktime", @"contentType",
                                   videoTitle, @"title",
                                   videoDescription, @"description",
                                   nil];
    [facebook requestWithGraphPath:@"me/videos"
                         andParams:params
                     andHttpMethod:@"POST"
                       andDelegate:self];
}

Я не могу найти какие-либо методы внутри Facebook.h, который поставляется с iOS SDK Facebook, который позволяет мне отменить загрузку.

Даже если я сделаю [facebook release], он все равно не отменит FBSession, который пытается загрузить видео. Это означает, что я получу exc_bad_access, когда загрузка будет завершена, когда FBSession попытается сообщить объекту facebook, что загрузка завершена.

1 Ответ

3 голосов
/ 18 ноября 2011

Я добавил следующие методы:

FBRequest

(void) cancel {
   [_connection cancel];
   [_connection release], _connection = nil;
}

Facebook

(void)cancelPendingRequest {
  [_request cancel];
  [_request release], _request = nil;
}

cancelPendingRequest позволит мне отменить процесс загрузки видео.

...