Я обновил это до XCode 8 этим утром и решил преобразовать мои файлы Swift в 2.3 вместо 3. Я решил все мои проблемы с компиляцией, за исключением кода ниже. Только случай MFMailComposeResultSent действительно делает что-то важное. XCode говорит, что MFMailComposeResultSent и другие подобные случаи являются неразрешенными идентификаторами. В последней документации показано, что я должен использовать MFMailComposeResult.sent, а функция автоматического предложения предлагает это как возможность, но также отказывается компилировать. Я был бы признателен за информацию о том, как сделать этот компилятор для использования с Swift 2.3.Константы MFMailComposeResult не компилируются в Swift 2.3
Спасибо.
func mailComposeController(controller:MFMailComposeViewController, didFinishWithResult result:MFMailComposeResult, error:NSError?) {
switch result.rawValue {
case MFMailComposeResultCancelled.rawValue:
print("Mail canceled")
case MFMailComposeResultSaved.rawValue:
print("Mail saved")
case MFMailComposeResultSent.rawValue:
makeToast("Successfully sent email.", duration: 3)
print("Mail sent")
case MFMailComposeResultFailed.rawValue:
print("Mail sent failure: \(error!.localizedDescription)")
default:
break
}
hideActivityIndicator()
self.dismissViewControllerAnimated(true, completion: nil)
}
Спасибо. Я действительно пробовал это с «.sent» и «.failed», что показывает документация, но это не сработало, я думаю, потому что эта документация для Swift 3. Ваш подход решил проблему. –
Ну, конечно, это, в свою очередь, ставит вопрос о том, почему на земле вы решили использовать устаревшую версию Swift. Вы сделали вещи намного труднее для себя. Зачем? – matt
Я перейду на 3, но вам нужно идти более постепенно, так как некоторые из предыдущих версий конверсий были достаточно серьезными, чтобы стоить целый день работы, чего я не могу себе позволить в данный момент. –