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

  • GOTO Conferences

    GOTO Confere

    3 EKİM 2011
  • Kyletiv7

    Kyletiv7

    28 Mayıs 2007
  • Video-Tutorials.Net

    Video-Tutori

    15 Mart 2011