我有一个类,它创建 MailCore 会话,然后解析消息。我可以在运行 ios17 的模拟器上完美运行它。但是,当我在手机上运行它时,执行 fetchMessagesOperation 时它会冻结。我知道它配置正确。我还注意到这种情况发生在多个不同的(非模拟器)设备上。模拟器环境和硬件环境有什么不同会导致这种情况?下面的相关代码(它在“消息检索”之前冻结):
init() {
session = MCOIMAPSession()
session!.hostname = self.hostname
session!.port = 993
session!.username = self.username
session!.password = self.password
session!.connectionType = .TLS
}
func getEmailText(completion: @escaping CompletionString) {
print(#function)
guard let session = self.session else { return }
let uids = MCOIndexSet(range: MCORange(location: 1, length: UInt64.max))
if let fetchOperation = session.fetchMessagesOperation(withFolder: folder, requestKind: .headers, uids: uids) {
fetchOperation.start { error, fetchedMessages, vanishedMessages in
print("Messages retrieved")
if let error = error {
print("Error downloading message headers: \(error.localizedDescription)")
} else if let messages = fetchedMessages {
...
}
}
}
}
尝试添加:
session.isVoIPEnabled = false