Objective c 通过ScriptingBridge从Mail.app保存附件(目标C)

Objective c 通过ScriptingBridge从Mail.app保存附件(目标C),objective-c,scripting-bridge,Objective C,Scripting Bridge,我正在尝试通过scriptingbridge从Mail.app检索附件。我正在使用以下代码访问我的收件箱消息 MailApplication *mailApp = [SBApplication applicationWithBundleIdentifier:@"com.apple.mail"]; MailMailbox *inbox = [mailApp inbox]; SBElementArray *messages = [inbox messages]; 通过迭代SBElementArra

我正在尝试通过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是我想要存储文件的地方,但我不知道
mailsavablefileformat
。我正在传递头文件中找到的
mailsavablefileformatnativeformat
,但正如我所说的,什么也没发生。甚至连一条简单的错误消息都没有

我还尝试用一个目录和一个完整的文件路径(path+filename)初始化NSURL。同样的结果

有人举个例子吗?我如何保存它

蒂亚


Bob

在我的旧系统上,我使用文件路径和nil,如下所示
[附件saveIn:file_path as:nil]

在我的“Mail.h”中:
saveIn:(NSString*)In_uas:(NSString*)as

我知道它在LionNSURL而不是NSString上更改了,但不是在AppleScript脚本中,您必须在不使用任何其他参数的情况下指定文件路径-->
将此附件保存在文件路径--AppleScript


因此,我认为完整的文件路径+as:nil应该可以工作。

我设法解决了这个问题。我错了。。。有效的代码是:

for (MailMailAttachment *attachment in mailitem.attachments) {
   NSString *filePath = [NSString stringWithFormat:@"%@%@",@"/Users/usr/Documents/tmp/",attachment.name];
   NSURL *fileUrl = [NSURL fileURLWithPath:filePath];
   [attachment saveIn:fileUrl as:MailSaveableFileFormatNativeFormat];
}

谢谢,但没用。我发现我把NSURL初始化错了。。。顺便说一下,在my Mail.h中,它具有MailSaveableFileFormatNativeFormat='item'/*本机格式*/