jak dodać dodatkowy argument do bloku

Mailcore ma fajnemetoda który pobiera załącznik i akceptuje blok jako parametr do zwracania postępu pobierania:

- (CTCoreAttachment *)fetchFullAttachmentWithProgress:(CTProgressBlock)block;

gdzie CTProgressBlock jest zdefiniowany jako

typedef void (^CTProgressBlock)(size_t curr, size_t max);

więc zazwyczaj używałbym tego w ten sposób:

//AttachmentDownloader.m
int fileNum = x; // explained later
CTCoreAttachment* fullAttachment = 
    [attachment fetchFullAttachmentWithProgress:^(size_t curr, size_t max) {
    NSLog(@"::: this is curr: %zu", curr);
    NSLog(@"::: this is max: %zu\n\n", max);
}];

problem polega na tym, że ta ostatnia metoda jest wywoływana przez moją główną klasę interfejsu użytkownikaFileBucket.m a ta klasa z kolei pobiera wiele załączników dla wielu różnych elementów interfejsu użytkownika w sekwencji. Chciałbym, aby ta metoda wywołania zwrotnego zgłosiła się z powrotemFileBucket.m do którego przynależności ten postęp należy. Innymi słowy chcę czegoś podobnego do:

// FileBucket.m
[AttachmentDownloader runMultiple:attachmentTree 
                     withProgress:^(size_t curr, size_t max, int fileNum) {
    NSLog(@"::: this is curr: %zu", curr);
    NSLog(@"::: this is max: %zu\n\n", max);
    NSLog(@"::: this progress belongs to element %d", fileNum);
}];

Wiem, że trudno to wyjaśnić / zilustrować.AttachmentDownloader.m zdaje sobie sprawę z tego, o co chodzi w tym postępie ... ale po prostu chce go przekazać z powrotemFileBucket.m każdego razu wywoływany jest blok wywołania zwrotnego.

questionAnswers(2)

yourAnswerToTheQuestion