Я использую популярный класс каллу SSZipArchive разархивировать файл, конкретно этот метод:UILabel перезарядка текст
+ (BOOL)unzipFileAtPath:(NSString *)path toDestination:(NSString *)destination progressHandler:(void (^)(NSString *entry, unz_file_info zipInfo, long entryNumber, long total))progressHandler completionHandler:(void (^)(NSString *path, BOOL succeeded, NSError *error))completionHandler
И я обновляю два uilabels текст в блоках внутри, оба из них выделяются, оба их текста меняются раньше, когда я печатаю содержимое uilabels, текст обновляется, но экран не обновляет его, я должен сказать, что этот метод загружается, когда я заканчиваю загрузку zip в метод делегата ,
Мой код:
- (void)downloadManager:(id)sender finishedDownload:(ANDownload *)download {
if ([[NSFileManager defaultManager] fileExistsAtPath:download.storeFile]) {
NSLog(@"Download exists");
[self.labelStep setText:CustomLocalizedString(@"ZIP_DECOMPRESSING_MSG", nil)];
[SSZipArchive unzipFileAtPath:download.storeFile toDestination:self.saveFolderPath progressHandler:^(NSString *entry, unz_file_info zipInfo, long entryNumber, long total) {
//Your main thread code goes in here
NSString * labelProgressText = [NSString stringWithFormat:@"%ld/%ld", entryNumber, total];
self.labelProgress.text = labelProgressText;
} completionHandler:^(NSString *path, BOOL succeeded, NSError *error) {
NSLog(@"Succeeded %d in path: %@", succeeded, path);
if(succeeded){
.....
Показать свой код, а не 'unzipFileAtPath: ...' подпись метода. Как ты это используешь? Отправьте как можно больше связанного кода ... – robertvojta
Вы обновляете метку в 'if (success) {...}'? – sbarow
Нет, в этом я делаю некоторые вещи и представляю еще один контроллер представления ... Я обновляю текст labelStep и labelProgress, где вы можете его увидеть ... – peig