Ios 发送消息的Swift代码不工作

Ios 发送消息的Swift代码不工作,ios,swift,xcode,Ios,Swift,Xcode,我正在学习编码,我正在尝试创建一个简单的代码来在IOS上发送消息。我已确保导入MessageUI框架。当我在模拟器上运行它时,它失败并显示线程1:信号SIGABRT。如果只是一个小错误,我深表歉意,因为我经常犯这样的错误,不想浪费任何人的时间。这是我的密码: import UIKit import MessageUI class ViewController: UIViewController, MFMessageComposeViewControllerDelegate { @IBO

我正在学习编码,我正在尝试创建一个简单的代码来在IOS上发送消息。我已确保导入MessageUI框架。当我在模拟器上运行它时,它失败并显示线程1:信号SIGABRT。如果只是一个小错误,我深表歉意,因为我经常犯这样的错误,不想浪费任何人的时间。这是我的密码:

import UIKit
import MessageUI


class ViewController: UIViewController, MFMessageComposeViewControllerDelegate {



@IBOutlet weak var messageLabel: UILabel!
override func viewDidLoad() {
    super.viewDidLoad()

}

override func didReceiveMemoryWarning() {
    super.didReceiveMemoryWarning()

}
 @IBAction func SendSMS(sender: AnyObject) {
    let messageVC = MFMessageComposeViewController()

    messageVC.recipients = ["5146276051"]
    messageVC.body = messageLabel.text
    messageVC.messageComposeDelegate =  self
    self.presentViewController(messageVC, animated: true, completion: nil)


}
func messageComposeViewController(controller: MFMessageComposeViewController, didFinishWithResult result: MessageComposeResult) {

    switch (result.rawValue) {

    case MessageComposeResultCancelled.rawValue:
        print("Message was cancelled")
        self.dismissViewControllerAnimated(true, completion: nil)

    case MessageComposeResultFailed.rawValue:
        print("Message has failed")
        self.dismissViewControllerAnimated(true, completion: nil)

    case MessageComposeResultSent.rawValue:
        print("Message was sent")
        self.dismissViewControllerAnimated(true, completion: nil)

    default:
        break
    }
}

}

多谢各位

请尝试在物理设备上使用您的代码,它应该可以工作

顺便说一句,请在您的代码中添加检查设备是否支持发送消息:

        @IBAction func SendSMS(sender: AnyObject) {
            //Checking whether device support message sending
            if (MFMessageComposeViewController.canSendText() == false) { return }

            let messageVC = MFMessageComposeViewController()

            messageVC.recipients = ["5146276051"]
            messageVC.body = messageLabel.text
            messageVC.messageComposeDelegate =  self
            self.presentViewController(messageVC, animated: true, completion: nil)
        }

通过这种方式,您将避免在模拟器上崩溃。

如果您尝试在物理设备上使用您的代码,它应该可以工作

顺便说一句,请在您的代码中添加检查设备是否支持发送消息:

        @IBAction func SendSMS(sender: AnyObject) {
            //Checking whether device support message sending
            if (MFMessageComposeViewController.canSendText() == false) { return }

            let messageVC = MFMessageComposeViewController()

            messageVC.recipients = ["5146276051"]
            messageVC.body = messageLabel.text
            messageVC.messageComposeDelegate =  self
            self.presentViewController(messageVC, animated: true, completion: nil)
        }

这样,您将避免在模拟器上发生碰撞。

非常感谢!我一定去看看。非常感谢!我一定要看一看。您好,您是否已将
iAction
iOutlet
正确连接到故事板文件。信号SIGABRT通常是由这样的原因引起的。让我知道这是否有效。您是否已将
iAction
iOutlet
正确连接到故事板文件。信号SIGABRT通常是由这样的原因引起的。让我知道这是否有效