2012-10-25 8 views
19

Xcode मेरी (सोचा-टू-बी) टाइपो की एक त्रुटि नहीं देता:क्या संक्षिप्त प्रश्न चिह्न कॉलन है?: एक उद्देश्य-सी वाक्यविन्यास?

NSString *theme = [[NSUserDefaults standardUserDefaults] objectForKey:@"theme"]; 
NSLog(@"Theme: %@", theme ?: @"Default"); 

यह पता चला:

NSLog(@"Theme: %@", theme ? theme : @"Default"); 

: एक ही रूप में

NSLog(@"Theme: %@", theme ?: @"Default"); 

काम करता है क्या उपर्युक्त छोटा वाक्यविन्यास gcc only के लिए अच्छा है? या यह उद्देश्य सी का हिस्सा है?

+0

लिंक आपके द्वारा दिया गया विशेष रूप से कहा है कि यह _C_ भाषा के लिए एक जीएनयू विस्तार था। यह उद्देश्य-सी का कोई उल्लेख नहीं करता है, जो सी –

+2

का सुपरसैट है। यह सबसे अच्छी बात है जिसे मैंने पूरे महीने SO पढ़ा है। मुझे नई बकवास सीखना अच्छा लगता है !! –

+0

'ए?: बी'' से अलग कैसे है बी'? – jameshfisher

उत्तर

17

यह सी में सशर्त अभिव्यक्ति के लिए एक जीएनयू विस्तार है:

here से:

सेल्सियस के लिए एक जीएनयू विस्तार दूसरे संकार्य को छोड़ते हुए, और परोक्ष भी दूसरे के रूप में पहली संकार्य का उपयोग कर की अनुमति देता है :

a = x ? : y; 
+2

मैंने अपने प्रश्न में विकिपीडिया लिंक भी उद्धृत किया। चूंकि ऐप्पल जीसीसी से एलएलवीएम में जा रहा है, मुझे यह जानकर उत्सुकता है कि क्या यह उद्देश्य-सी में आधिकारिक वाक्यविन्यास है। – ohho

+2

@ohho हाँ मुझे आपके प्रश्न में लिंक नहीं मिला। वे क्लैंग की तरफ बढ़ रहे हैं, जो जीसीसी 4.2 के साथ संगतता प्रदान करता है, इसलिए जीएनयू एक्सटेंशन रखता है। – trojanfoe

संबंधित मुद्दे