2012-02-19 29 views
15

Następująca sytuacja: Chcę wysłać SMS-y aplikacji. To jest mój kod tworzący MFMessageComposeViewController:MFMessageComposeViewController na symulatorze - 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]; 
    } 
} 

Myślę, że to jest proste. Podczas testowania w Symulatorze otrzymuję następujący wyjątek: Application tried to push a nil view controller on target <MFMessageComposeViewController: 0x8a4e090>. Zastanawiam się też, dlaczego [MFMessageComposeViewController canSendText] zwraca YES podczas uruchamiania aplikacji w symulatorze.

Podczas pracy na urządzeniu wszystko działa poprawnie.

Nie mogłem znaleźć niczego w dokumentacji/sieci dotyczącej tego dziwnego zachowania.

Używam Xcode 4.3 na OS 10.7.3, Deployment Target to iOS 5.0.

Dzięki z góry, tubtub

Odpowiedz

23

Ten problem występuje po zainstalowaniu programu Wiadomości beta w systemie OS X Lion.

Edytuj: Występuje również w Mountain Lion, gdy skonfigurowano i włączono konto iMessage. Jeśli konto jest wyłączone, działa poprawnie (canSendText zwraca NIE).

Wskazówka: jeśli używasz controller.modalTransitionStyle = UIModalTransitionStylePartialCurl, możesz wrócić do symulatora, klikając zwiniętą "stronę" w lewym górnym rogu.

+2

Jeśli zainstalowano Wiadomości beta, 'canSendText' zwraca' TAK', ale widok stanie się czarny i puste (brak treści). Jeśli wiadomość zostanie odinstalowana w wersji beta, 'canSendText' zwróci' NO'. Xcode 4.4 GM i iPhone 5.1 Symulator na Lwie. – Chris

+0

Jakieś poprawki jeszcze? Błąd ten występuje w systemie Mac OS 10.8.2 z XCode 4.6.1. –

2

widzę to samo. Myślę, że to błąd w symulatorze iOS 5 z Xcode 4.3. canSendText poprawnie zwraca NO w symulatorze iOS 4.3. Ten sam kod działa poprawnie na urządzeniu.

4

Symulator powinien zawsze zwracać NO z canSendText, tak nie jest w przypadku symulatorów iOS 5.0 i 5.1. W Xcode 4.2 uległo awarii, w Xcode 4.3 po prostu popycha kontroler zerowy.

+0

Mam ten sam problem, że zerowy widok jest wysyłany, ale dzieje się nawet na moim urządzeniu testowym iPhone 4 z systemem iOS 5.1 – OscarTheGrouch

1

W tej konfiguracji canSendText zwraca poprawnie NO w symulatorze (plus to UIAlertView wydaje się powiedzieć SMS nie jest dostępna):

  • Mountain Lion
  • Xcode 4.4
  • iOS 5.1
+0

Chyba nie masz skonfigurowanego i włączonego konta iMessage. –

0

Otrzymywanie tego samego błędu. Im na OSX 10.8.5 z XCode 5.0 (5A1413).

Próbowano przejść na różne typy symulatorów (iPhone, iPad), ale wyniki są takie same. Próbowałem także wyłączyć konto w Wiadomościach, ale bezskutecznie.