Рассчитать размер почтового вложения в iOS - PullRequest
1 голос
/ 03 апреля 2012

Я пытаюсь вычислить размер письма, созданного с помощью MFMailComposeViewController. Пользователь выбирает некоторые заголовки из UITableView, и мое приложение выбирает соответствующие PDF-файлы с сервера и прикрепляет их к новой почте.

Я сейчас пытаюсь вычислить размер вложения (чтобы показать его или сделать некоторые ограничения или что-то еще).

for(int i = 0; i < fileIDs.count; i++) {
    NSURL *docUrl = [NSURL URLWithString:[NSString stringWithFormat:
                                          @"http://domain.com/getPDF.php?fileID=%@", 
                                          [fileIDs objectAtIndex:i]]];

    NSData *docData = [NSData dataWithContentsOfURL:docUrl];

    [mailController addAttachmentData:docData 
                    mimeType:@"application/pdf" 
                    fileName:@"file.pdf"];

    mailLength = mailLength + [docData length];

    NSLog(@"Mail generation...\n%i of %i (%.2fMB)", 
          i+1, currentRows.count, ((float)(int)mailLength / 1048576));
}

Я получаю вывод, хотя. Но это много слишком много. Расчетный размер файла составляет, например, 5,14 МБ , но фактический размер составляет всего 1,2 МБ .

Что я делаю не так?

1 Ответ

2 голосов
/ 03 апреля 2012

Я исправил это.

Вместо использования NSInteger мне просто нужно было использовать float.Это работает прямо сейчас:

// header:
float mailLength;

// implementation:
mailLength = mailLength + [docData length];
NSLog(@"Mail generation...\n%i of %i (%.2fMB)", i+1, currentRows.count, (mailLength / 1048576));
...