我正在尝试通过 scriptingbridge 从 Mail.app 检索附件。我正在使用以下代码来访问我的收件箱消息。
MailApplication *mailApp = [SBApplication applicationWithBundleIdentifier:@"com.apple.mail"];
MailMailbox *inbox = [mailApp inbox];
SBElementArray *messages = [inbox messages];
通过迭代SBElementArray
,我可以访问单个MailMessage
对象。
每个MailMessage
对象都有一个获取另一个对象的 getter SBElementArray
,这次用MailMailAttachment
对象填充。
它正在工作,因为如果我放一个NSLog(@"count:%lu",mailitem.attachments.count);
它会打印正确数量的附件。文件名和大小也正确打印。
但是当我遍历附件数组并保存它时,什么也没有发生。
NSURL *url = [[NSURL new] initFileURLWithPath:@"/Users/usr/Documents/tmp/"];
NSLog(@"count:%lu",mailitem.attachments.count);
for (MailMailAttachment *attachment in mailitem.attachments) {
NSLog(@"name:%@",attachment.name);
NSLog(@"size:%ld",attachment.fileSize);
[attachment saveIn:url as:MailSaveableFileFormatNativeFormat];
}
我没有找到有关此方法的任何文档。从头文件中,它说:
- (void) saveIn:(NSURL *)in_ as:(MailSaveableFileFormat)as; // Save a document.
我假设 NSURL 是我要存储文件的地方,但我不知道MailSaveableFileFormat
. 我正在传递MailSaveableFileFormatNativeFormat
,我在头文件中找到了,但正如我所说,没有任何反应。甚至没有简单的错误消息。
我还尝试使用目录和完整的文件路径(路径+文件名)初始化 NSURL。结果相同。
有没有人有一个例子?我该如何保存?
TIA,
鲍勃