iphone - संकलन त्रुटि के साथ: स्विच, "पहले अपेक्षित अभिव्यक्ति"




objective-c cocoa (2)

पीछा करने के लिए कटौती मैंने अपनी समस्या को फिर से बनाया है क्योंकि यह काफी आत्म व्याख्यात्मक है।

यह त्रुटि के बिना अनुपालन करता है:

switch (n) {
    case 1:
        NSLog(@"");
        NSString *aStr;
        break;
    default:
        break;
    }

यह त्रुटि के साथ संकलित करता है और यह केवल NSLog () को याद कर रहा है:

switch (n) {
    case 1:
        NSString *aStr;
        break;
    default:
        break;
    }

यह संकलन में एक त्रुटि फेंकता है " एनएसएसटींग से पहले अपेक्षित अभिव्यक्ति "

क्या मुझसे कोई चूक हो रही है?


आप एक वैरिएबल को बिना किसी ब्रैकेट के case में पहले कथन के रूप में घोषित नहीं कर सकते हैं, और सी-आधारित भाषाओं में कई अन्य संदर्भों में। विवरण के लिए स्विच स्टेटमेंट के अंदर घोषित करने वाले चर देखें।


सामान्य सी में आपको दोनों मामलों में ब्रैकेट में इसे संलग्न करना होगा। मुझे संदेह है कि यह आपकी समस्या को ठीक कर सकता है:

case 1:
{
    NSLog(@"");
    NSString *aStr;
    break;
}

अधिक जानकारी के लिए यह SO सवाल देखें।

इस समस्या को हल करने का एक और तरीका केस लेबल और पहली घोषणा के बीच एक बयान देना है जैसा आपने ऊपर दिए गए अपने कामकाजी उदाहरण में किया है। अधिक जानकारी के लिए टिप्पणियां और क्विन टेलर का जवाब देखें।





xcode3.2