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

  • AFISHAL

    AFISHAL

    7 Mart 2009
  • Erica Griffin

    Erica Griffi

    8 HAZİRAN 2009
  • ::..ηєѕѕ мιχ..::

    ::..ηєѕѕ

    15 Aralık 2006