SORU
12 Temmuz 2009, Pazar


Objective-C switch deyimi içinde değişkenleri ilan edebiliyor muyum?

Sözdizimi hatası bu kod nerede olduğunu göremiyorum çünkü kör oluyorum sanırım:

if( cell == nil ) {
    titledCell = [ [ [ TitledCell alloc ] initWithFrame:CGRectZero
    	reuseIdentifier:CellIdentifier ] autorelease
    ];

    switch( cellNumber ) {
    	case 1:
    		NSString *viewDataKey = @"Name";
etc...

Derlemeye çalıştığımda, bir alıyorumHata: sözdizimi hatası before '*' tokenson satırında.

Böyle bir temel soru için özür dilerim, ama ben ne eksik?

CEVAP
12 Temmuz 2009, Pazar


Yandan Objective-C uygun bir derleyici yok, ama sürece C yapıları aynıdır:

switch { … } verirbirblok düzeyi kapsamı, case her biri için değil. Bir değişken herhangi bir kapsam başlangıcı dışında yasadışı ilan ve switch içindeözelliklebaşlatma atlamış olabilir, çünkü tehlikeli.

Aşağıdakilerden birini bu sorunu gidermek için?

NSString *viewDataKey;
switch (cellNumber) {
    case 1:
        viewDataKey = @"Name";
    …
}

switch (cellNumber) {
    case 1: {
        NSString *viewDataKey = @"Name";
        …
    }
    …
}

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Break

    Break

    10 Aralık 2005
  • CMTelly

    CMTelly

    2 Mayıs 2007
  • Yanko Kral

    Yanko Kral

    8 HAZİRAN 2006