当我在模拟器上运行 MailCore 2 时,我几乎能够成功使用它的所有功能,但每次在设备上运行它时都会失败。它不会给我一个错误,它只是停止在带有消息“EXC_BREAKPOINT(code=1,subcode=0x21cc8b374)”的线程上。我知道该线程有消息:Queue:shared_tcpConnWorkQueue(串行)。”除了清楚地表明该函数正在该线程上运行并且每次运行时都会崩溃这一事实之外,我真的不明白这意味着什么。
我只是不明白为什么它可以在模拟器上运行而不是在设备上运行。可以将以下代码粘贴到添加了 MailCore 的 XCode 项目的 ViewController 文件中,添加用户名和密码后,应该可以正常工作。
class ViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view.
getEmailText()
}
func getEmailText() {
print(#function)
let username = "EMAIL ADDRESS"
let password = "PASSWORD"
let folder = "INBOX"
let session = MCOIMAPSession()
session.hostname = "imap.gmail.com"
session.port = 993
session.username = username
session.password = password
session.connectionType = .TLS
session.isVoIPEnabled = true
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 {
for messageId in messages {
print(messageId)
}
}
}
}
}
}
尝试添加:
session.isVoIPEnabled = false