2012-02-19 28 views
15

seguente situazione: voglio inviare in app SMS. Questo è il mio codice di creazione del MFMessageComposeViewController:MFMessageComposeViewController on Simulator - canSendText?

-(void) showMessageComposerWithText:(NSString*)messageText telNumber:(NSString*)telNumber composeDelegate:(id)delegate 
{ 
    MFMessageComposeViewController *controller = [[MFMessageComposeViewController alloc] init]; 
    if([MFMessageComposeViewController canSendText]) 
    { 
     controller.body = messageText; 
     controller.recipients = [NSArray arrayWithObject:telNumber]; 
     controller.messageComposeDelegate = delegate; 

     [delegate presentModalViewController:controller animated:YES]; 
    } 
} 

quindi penso che questo è semplice. Durante il test in Simulator ottengo la seguente eccezione: Application tried to push a nil view controller on target <MFMessageComposeViewController: 0x8a4e090>. Mi sto anche chiedendo perché [MFMessageComposeViewController canSendText] restituisce YES quando si esegue l'applicazione nel simulatore.

Durante l'esecuzione sul dispositivo, tutto funziona correttamente.

Non sono riuscito a trovare nulla nel documento/Web riguardante questo strano comportamento.

Sto eseguendo Xcode 4.3 su OS 10.7.3, Obiettivo di distribuzione è iOS 5.0.

Grazie in anticipo, tubtub

risposta

23

Questo problema si verifica quando si installa Messaggi beta su OS X Lion.

Modifica: si verifica anche su Mountain Lion quando è configurato e abilitato un account iMessage. Se l'account è disabilitato, funziona correttamente (canSendText restituisce NO).

Suggerimento: se si utilizza controller.modalTransitionStyle = UIModalTransitionStylePartialCurl, è possibile tornare indietro in Simulator facendo clic sulla "pagina" arricciata nell'angolo in alto a sinistra.

+2

Se i messaggi beta sono installati, 'canSendText' restituisce' SÌ', ma la vista diventerà nera e vuoto (nessun contenuto). Se i messaggi beta sono stati disinstallati, 'canSendText' restituisce' NO'. Xcode 4.4 GM e iPhone 5.1 Simulator on Lion. – Chris

+0

Hai ancora qualche correzione? Questo bug persiste su Mac OS 10.8.2 con XCode 4.6.1. –

2

sto vedendo la stessa cosa. Penso che sia un bug nel simulatore iOS 5 con Xcode 4.3. canSendText restituisce correttamente NO nel simulatore iOS 4.3. Lo stesso codice funziona correttamente sul dispositivo.

4

Il simulatore deve sempre restituire NO dal canSendText, questo non è il caso dei simulatori iOS 5.0 e 5.1. Con Xcode 4.2 si è schiantato, su Xcode 4.3 si spinge solo un controller di visualizzazione nulla.

+0

Sto avendo lo stesso problema, che una vista nulla viene spinto, ma sta accadendo anche sul mio dispositivo di test un iPhone 4 con iOS 5.1 – OscarTheGrouch

1

Con questa configurazione, canSendText restituisce correttamente NO nel simulatore (più, un UIAlertView appare a dire messaggi di testo non è disponibile):

  • Mountain Lion
  • Xcode 4.4,
  • iOS 5.1
+0

Immagino che tu non abbia l'account iMessage configurato e abilitato. –

0

Ottenere lo stesso errore. Im su OSX 10.8.5 con XCode 5.0 (5A1413).

Provato a cambiare a diversi tipi di simulatore (iPhone, iPad) ma i risultati sono gli stessi. Ho anche provato a disabilitare l'account in Messaggi, ma senza successo.