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