2012-03-30 21 views
6

Aşağıda, e-posta gönderilemediğinde bir hata iletisi görüntüleyen bir Anahtar/Kasa ifadesi verilmiştir. Çoğunlukla, her şeyi doğru görünüyor, ama ben Anahtarı Tablosu içine UIAlertView yerleştirdiğinizde Xcode bir hata alıyorum: içimde kod yerleştirdiğinizdeBir Anahtar Deyimi Kullanarak Obj-C

Xcode error

switch (result) { 
    case MFMailComposeResultCancelled: 
     NSLog(@"Result: Mail sending canceled"); 
     break; 
    case MFMailComposeResultFailed: 
     NSLog(@"Result: Mail sending failed"); 
     UIAlertView *message = [[UIAlertView alloc] initWithTitle:@"Sending Failed" 
                  message:@"The email could not be sent." 
                 delegate:nil 
               cancelButtonTitle:@"OK" 
               otherButtonTitles:nil]; 

     [message show]; 
     break; 
    default: 
     NSLog(@"Result: Mail not sent"); 
     break; 
} 

Neden bir hata oluşturur? case?

+0

bakış [1] [1]: http://stackoverflow.com/questions/366073/instantiating-new-object-within-switch-block-why- başarısız olursa – TompaLompa

+0

Hayır, UIAlertView'ın bir IBAction'a ihtiyacı yoktur. – c0d3Junk13

+0

olası bir kopyası [Bir projeyi ARC'yi kullanmak için dönüştürürken, 'anahtar durumu korumalı kapsamdadır? Ortalama?] (Http://stackoverflow.com/questions/7562199/when-converting-a-project-to-use- ark-ne-anahtar-durumda-in-korumalı-scop) – ughoavgfhw

cevap

14

parantez koy:

case MFMailComposeResultFailed: { 
    NSLog(@"Result: Mail sending failed"); 
    UIAlertView *message = [[UIAlertView alloc] initWithTitle:@"Sending Failed" 
                 message:@"The email could not be sent." 
                delegate:nil 
              cancelButtonTitle:@"OK" 
              otherButtonTitles:nil]; 

    [message show]; 
    break; 
    } 
+0

neden? lütfen açıkla –

+0

@Phillip Mills'e cevap verin veya bir arama yapın ve çok fazla açıklama bulacaksınız. – bandejapaisa

+0

Tamam Anladım .......... –

12

sorun bir anahtar durumlarında içindeki değişkenleri beyan eder. Derleyici, yalnızca kodun bir kısmı yürütüldüğünde kapsamı anlamaya çalışmak konusunda üzülüyor. Parantezleri 'başarısızlık' içeriğinin etrafına koyarsanız, kapsamı kısıtladığı için Tamam olması gerekir. [Buraya girmek bağlantı açıklaması] adresinden