2015-09-17 30 views
5

Il codice seguente ha funzionato in Swift 1.2. Ora, ottengo un errore:messageComposeViewController Error in Swift 2

"Value of type MessageComposeResult has no member 'value'"

func messageComposeViewController(controller: MFMessageComposeViewController, didFinishWithResult result: MessageComposeResult) { 
    switch (result.value) { 
    case MessageComposeResultCancelled.value: 
     print("Message was cancelled") 
     self.dismissViewControllerAnimated(true, completion: nil) 
    case MessageComposeResultFailed.value: 
     print("Message failed") 
     self.dismissViewControllerAnimated(true, completion: nil) 
    case MessageComposeResultSent.value: 
     print("Message was sent") 
     self.dismissViewControllerAnimated(true, completion: nil) 
    default: 
     break; 
    } 
} 

Quale membro del risultato dovrei controllare per trovare lo stato del messaggio Swift 2?

risposta

12

In Swift 2, value non esiste in result.

Utilizzare result.rawValue, invece.

+1

Grazie! @Unheilig – patrickd

0

uso rawValue posto del valore

switch result.rawValue { 
    case MessageComposeResult.Cancelled.rawValue: 
     print("Message was cancelled") 
     controller.dismissViewControllerAnimated(true, completion: nil) 

    case MessageComposeResult.Failed.rawValue: 
     print("Message failed") 
     controller.dismissViewControllerAnimated(true, completion: nil) 

    case MessageComposeResult.Sent.rawValue: 
     print("Message was sent") 
     controller.dismissViewControllerAnimated(false, completion: nil) 

    default: 
     break 
     controller.dismissViewControllerAnimated(true, completion: nil) 
    } 
+1

Puoi aggiungere una spiegazione di cosa è cambiato per favore? – rjdkolb

+0

Grazie per la risposta. Per migliorarlo, potresti aggiungere una spiegazione di ciò che hai cambiato e perché questi cambiamenti risolvono il problema dell'OP. – Tom