2

我正在使用ScriptingBridge.frameworkMail.app交互。以下代码大约需要 30 秒来加载 100 条消息。我在配备 4GB (1333 MHz DDR3) 内存的 2.8GHz Core i7 MacBook Pro 上运行它。我的操作系统是 10.7.4。

MailApplication *mailApp = [SBApplication applicationWithBundleIdentifier:@"com.apple.mail"];
MailMailbox *inbox = [mailApp inbox];
SBElementArray *messages = [inbox messages];

NSMutableArray *tmp = [NSMutableArray arrayWithCapacity:[messages count]];
for (MailMessage *message in messages) {
   RRMailItem *mailitem = [RRMailItem new];
   [mailitem setSender:[message sender]];
   [mailitem setSubject:[message subject]];
   [mailitem setDate:[message dateSent]];

   if (message.mailAttachments.count > 0) {
      [mailitem setHasAttachment:YES];
   }

   [tmp addObject:mailitem];
}

RRMailItem 是一个简单的对象,如下所示。它只是一个保存值的对象。它没有任何方法:

@interface RRMailItem : NSObject

@property NSString *sender;
@property NSString *subject;
@property NSDate *date;
@property BOOL hasAttachment;

@end

如果我删除if (message.mailAttachments.count > 0),执行时间会减少 50%,到 15 秒来加载相同的 100 条消息。好多了,但仍然很高。我需要IF...

如何提高代码性能?欢迎任何提示和提示。

TIA,

鲍勃

4