计算iOS中的邮件附件大小

时间:2012-04-03 04:43:10

标签: objective-c nsdata filesize mfmailcomposeviewcontroller

我正在尝试计算通过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.14MB ,但实际大小仅为 1.2MB

我做错了什么?

1 个答案:

答案 0 :(得分:2)

我修好了。

我不得不使用NSInteger而不是使用NSInteger。它现在有效:

// header:
float mailLength;

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