计算iOS中的邮件附件大小



我正在尝试计算通过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

我做错了什么?

我修复了它。

我没有使用NSInteger,而是使用了一个float。它现在有效:

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

最新更新