我正在尝试计算通过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 。
我做错了什么?
答案 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));