2014-11-28 2 views
0

스위프트에서 메시지 플래그를 확인하려고하는데 아무데도 가지 않습니다. 본인은이 stackoverflow question을 도움을 청했습니다. 내가 그들을 확인할 때 수동으로 플래그 본 설정하고 플래그가 지정된이로 인쇄하는 경우 fetchMessagesOperationWithFolder 내부스위프트의 MCOMessageFlag

나는 등, 본 메시지의 선택을 플래그가 붙은 얻고있다 .. 더 플래그

let requestKind = MCOIMAPMessagesRequestKind.Headers 
let uids = MCOIndexSet(range: MCORangeMake(1, UINT64_MAX)) 
let folder = "INBOX" 

let fetchOperation = self.imapSession.fetchMessagesOperationWithFolder(folder, requestKind: requestKind, uids: uids) 

fetchOperation.start { (error, fetchedMessages, vanishedMessages) -> Void in 
    if (error != nil) { 
     println("Error: \(error)") 
    } else { 
     for obj in fetchedMessages { 
      if let message = obj as? MCOIMAPMessage { 

       let messageSeen = (message.flags & MCOMessageFlag.Seen) != nil; 
       let messageFlagged = (message.flags & MCOMessageFlag.Flagged) != nil; 

       if messageSeen { 
        println("Seen") 
       } 

      } 
     } 
    } 
} 

을보고있다 예상 됨 ..

message.flags = MCOMessageFlag.Seen | MCOMessageFlag.Flagged 

let messageSeen = (message.flags & MCOMessageFlag.Seen) != nil; 
let messageFlagged = (message.flags & MCOMessageFlag.Flagged) != nil; 

if messageSeen { 
    println("Seen") 
} 
... 

내가 뭘 잘못하고 있는지 확실하지 않아?

+1

깃발을 얻으려면 아마도 'let requestKind = MCOIMAPMessagesRequestKind.Headers | MCOIMAPMessagesRequestKind.Flags'. –

+0

그게 다야, 나는 바보라고 느낀다. 심지어 다른 요청 종류를 확인해 보았습니다. 나는 과거의 플래그를 건너 뛰었어야합니다. 답변을 제출하기를 원한다면 나는 그것을 정확하게 표시 할 것입니다. 감사! – SlateEntropy

답변

-1

Dinh Viêt Hoà가 a comment에서 제안했듯이 fetchOperation 요청 헤더에 플래그를 포함해야했습니다.

let requestKind = MCOIMAPMessagesRequestKind.Headers | MCOIMAPMessagesRequestKind.Flags 
let uids = MCOIndexSet(range: MCORangeMake(1, UINT64_MAX)) 
let folder = "INBOX" 

let fetchOperation = self.imapSession.fetchMessagesOperationWithFolder(folder, requestKind: requestKind, uids: uids)