2014-08-29 3 views
0
내가

상자 IOS SDK V2 운전

[[BoxSDK sharedSDK].filesManager downloadFileWithID:fileID 
             outputStream:outputStream 
            requestBuilder:nil 
              success:successBlock 
              failure:failureBlock 
              progress:progressBlock]; 

내가 다운로드 작업을 취소 할 수 있어야 전용 방법을 사용하여 파일을 관리 할 목적-C 상자 SDK를 사용하고

하지만 다운로드/업로드를 해요 취소 그렇게 할 수있는 방법을 찾을 수 없습니다! 업로드 작업을 취소 할 수 있어야합니다.하지만 그 일을하는 방법은 같을 것입니다. ...

아무도이를 달성 할 수 있습니까?

답변

2

filesManager는 BoxAPIDataOperation을 반환합니다. 궁극적으로 BoxAPIDataOperation은 NSOperation 및 Box 기본 클래스에서 상속받습니다. BoxAPIOperation입니다. BoxAPIOperation을 취소하려면 메시지 취소 만 보내면됩니다.

사실 BoxSDK의 모든 리소스 관리자는 BoxAPIOperation에서 상속 한 클래스를 반환합니다. BoxAPIOperation.m에서 (void) 취소를 찾을 수 있습니다.

그래서 귀하의 경우에 당신은

// property to store pointer to currently active download operation. 
// it is weak, because you don't want to retain it. after download is completed, cancelled or failed 
@property (nonatomic, readwrite, weak) BoxAPIDataOperation *downloadOperation; 
.... 

self.downloadOperation = [[BoxSDK sharedSDK].filesManager downloadFileWithID:fileID 
                  outputStream:outputStream 
                  requestBuilder:nil 
                   success:successBlock 
                   failure:failureBlock 
                   progress:progressBlock]; 
... 
- (void)dealloc 
{ 
    [self.downloadOperation cancel]; 
} 
// only if want to keep self in object and want to just cancel operation 
- (void)userPressedCancelButton:(id)sender 
{ 
    [self.downloadOperation cancel]; 
} 
+0

내가 그렇게보고 싶었어 믿을 수 없다 같은 것을 싶어! 고마워요! 그 방법을 찾고있을 때,이 클래스의 cancel 메소드를 찾았지만, .h 파일에서 선언되지 않았기 때문에 내부 용이라고 생각했습니다 ... – Sylverb

+0

그게 전부지만 도움이되는 한가지 더. 나는 박스 파일 다운로드에서 일시 중지/다시 시작을 원한다. 행운을 빕니다/ –

+0

@AdnanMunir, 아니요,이 기능은 지원되지 않습니다. –

관련 문제