1

を使用してすべてのメッセージを取得できfetchMessagesByUIDOperationWithFolder:ますが、いくつかのメッセージが未読で、ほとんどが既読で、一部がスター付きの場合、message.flags はすべて 0 を返します。

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 )ましたが、それでもすべてのフラグが0として返されます。

メッセージが未読かどうかを確認する適切な方法は何ですか?

4

2 に答える 2

6

同じ問題を抱えている人は、 flags: の種類のリクエストも含める必要があります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.
    }
}
于 2013-09-28T21:01:54.880 に答える