Send email In-game using sprite kit in xcode 7 beta3?

211 Views Asked by At

I am making an iPad game in sprite kit using swift in xcode 7beta3 and I want the results of the game to be send to the users email after the game is completed. The user should press a button called send and redirect to where they can type in their email-address and send the message. But I have no idea how to make and send an email.

I have been searching all around the internet for an answer to this question, but all are older version answers. I hope you can help.

Thanks in advance

EDIT: I have been searching some more and i found a solution (here: http://kellyegan.net/sending-files-using-swift/), but I still have a problem. In my GameViewController i have added:

override func viewDidLoad() {
        super.viewDidLoad()
        let scene = StartGameScene(size: view.bounds.size)
        let skView = view as! SKView
        skView.showsFPS = true
        skView.showsNodeCount = true
        skView.ignoresSiblingOrder = true
        scene.scaleMode = .ResizeFill
        skView.presentScene(scene)
    }


override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
        // Dispose of any resources that can be recreated.
}


internal func sendEmail() {
        //Check to see the device can send email.
        if( MFMailComposeViewController.canSendMail() ) {
            print("Can send email.")

            let mailComposer = MFMailComposeViewController()
            mailComposer.mailComposeDelegate = self

            //Set the subject and message of the email
            mailComposer.setSubject("Have you heard a swift?")
            mailComposer.setMessageBody("This is what they sound like.", isHTML: false)

            if let filePath = NSBundle.mainBundle().pathForResource("Math", ofType: "txt") {
                print("File path loaded.")

                if let fileData = NSData(contentsOfFile: filePath) {
                    print("File data loaded.")
                    mailComposer.addAttachmentData(fileData, mimeType: "text/plain", fileName: "Math")
                }
            }
            self.presentViewController(mailComposer, animated: true, completion: nil)
        }
    }



func mailComposeController(controller: MFMailComposeViewController, didFinishWithResult result: MFMailComposeResult, error: NSError?) {
        self.dismissViewControllerAnimated(true, completion: nil)
}

The sendMail() is called in one of my gameScenes when you press a button. The problem is that I get an error when I press that button. It prints out

Can send email. File path loaded. File data loaded.

as it should, but then it gives an error:

Could not cast value of type 'UIView' (0x1964ea508) to 'SKView' (0x19624f560).

I think the problem is the self.presentViewController(), but I have no idea how to fix it.

0

There are 0 best solutions below