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

  • kndx

    kndx

    11 Mart 2006
  • ThePointblank

    ThePointblan

    18 Aralık 2006
  • Within Temptation

    Within Tempt

    18 EYLÜL 2006