2013-09-28 27 views
1

我能夠使用fetchMessagesByUIDOperationWithFolder:獲取所有消息,但是,當某些消息未讀時,message.flags全部返回0,大多數消息被讀取並且一些消息被加了星號。MailCore2,只抓取UNREAD消息,或知道哪些是UNREAD

MCOIMAPMessagesRequestKind requestKind = MCOIMAPMessagesRequestKindHeaders; 
NSString *folder = @"INBOX"; 
MCOIndexSet *uids = [MCOIndexSet indexSetWithRange:MCORangeMake(1, UINT64_MAX)]; 

MCOIMAPFetchMessagesOperation *fetchOperation = [session fetchMessagesByUIDOperationWithFolder:folder requestKind:requestKind uids:uids]; 
[fetchOperation start:^(NSError * error, NSArray * fetchedMessages, MCOIndexSet * vanishedMessages) 
{ 
    if (! error) { 
     for (MCOIMAPMessage * message_ in fetchedMessages) { 
      // I only want UNREAD messages. 
     } 
    } 
} 

我一直在使用if (message_.flags & MCOMessageFlagSeen)嘗試,但仍然,全旗返回爲。

什麼是正確的方法來看看消息是UNREAD

回答

6

對於任何人有同樣的問題,你還需要包括請求標誌:MCOIMAPMessagesRequestKindFlags

MCOIMAPMessagesRequestKind requestKind = MCOIMAPMessagesRequestKindHeaders|MCOIMAPMessagesRequestKindFlags; 

然後,查找未讀的標誌:

for (MCOIMAPMessage * message_ in fetchedMessages) { 
    if (message_.flags == 0) { 
     // I have a suspicion that this is not the correct 
     // way to do this, but it seems to work the way I need. 
    } 
} 
0

您可以使用0或更好如下,即0太多,但如果他們決定別人以後改變它的東西,誰知道:

if(message_.flags == MCOMessageFlagNone) 
相關問題