【问题标题】:Sign Out feature MailCore 2 iOS IMAP退出功能 MailCore 2 iOS IMAP
【发布时间】:2015-08-24 16:38:12
【问题描述】:

我正在使用 MailCore 2 iOS IMAP 源来访问 IMAP 邮件。我在其中添加了邮件文件夹列表等功能。我想为任何登录的 imap 邮件提供“退出”功能。谁能告诉我,如何清除现有的登录会话并成功退出?

【问题讨论】:

    标签: ios objective-c mailcore2 mailcore


    【解决方案1】:

    在您的会话中使用disconnectOperation

    示例(斯威夫特):

    var op :MCOIMAPOperation = currentSession.disconnectOperation()
    

    这会注销会话。然后,您将需要处理您的本地存储(删除您的会话对象、消息等)。 Here's some documentation on it.

    【讨论】:

    • @Jeeped 它确实提供了答案。我可以更全面地解释它,但对于使用 Mailcore 的人来说,它应该非常有意义,任何更多细节都是多余的。如有必要,我可以举一个更完整的示例,但它非常简单 - 在会话对象上调用 disconnectOperation 方法。
    • "disconnectOperation" 单独不会进行类似注销的操作。可以分享一下示例代码 sn-p 吗?
    • @Stella 添加了更多信息。如果这不是您所需要的,您能否详细解释一下您希望退出后做什么?
    【解决方案2】:

    对我有用的示例代码

    IMAPSessionHelper.swift

    class IMAPSessionHelper: NSObject {
    
       fileprivate static var privateShared: IMAPSessionHelper?
       var imapSession: MCOIMAPSession!
    
       class func shared() -> IMAPSessionHelper {
          guard let uwShared = privateShared else {
            privateShared = IMAPSessionHelper()
            return privateShared!
          }
          return uwShared
       }
    
       class func destroy() {
           privateShared = nil
       }
    
       private override init() {
         imapSession = MCOIMAPSession()
         imapSession.hostname = _IMAP_HOST_NAME
         imapSession.port = _IMAP_PORT
         imapSession.connectionType = .TLS
       }
    
       func config(with account: Account) {
         imapSession.username = account.email
         imapSession.password = account.password
       }
    }
    

    退出:

    fileprivate func logout() {
        let logout = IMAPSessionHelper.shared().imapSession.disconnectOperation()
        logout?.start({ (error) in
            if let error = error {
                logger(error.localizedDescription)
                return
            }
    
            IMAPSessionHelper.destroy()
            _ = self.navigationController?.popToRootViewController(animated: true)
        })
    }
    

    【讨论】:

      猜你喜欢
      • 2013-01-18
      • 2016-06-18
      • 2012-02-27
      • 2011-03-20
      • 1970-01-01
      • 2013-07-13
      • 2015-08-20
      • 1970-01-01
      • 2017-02-05
      相关资源
      最近更新 更多