2011-03-31 11 views
7

मैं आईओएस पर एक एप्लीकेशन विकसित कर रहा हूं। मुझे लगता है कि NSAssert1 नामक एक मैक्रो है। ये किसके लिये है? NSLog और NSAssert1 के बीच उपयोग में अंतर क्या हैं?एनएसएएसएसर्ट 1 क्या है?

कृपया मुझे मार्गदर्शन करें या एक ट्यूटोरियल सुझाएं जहां मैं इसके बारे में पढ़ सकता हूं।

+1

की [NSAssert की बात है, वास्तव में क्या?] संभव डुप्लिकेट (http://stackoverflow.com/questions/1375786/whats-the-point-of-nsassert-actually) –

+0

सबसे अधिक संभावना मेटा डेटा एनएसए के लिए भेजता है –

उत्तर

28

NSAssert वेरिएंट एक शर्त है और एक संदेश ले। यदि स्थिति पूरी नहीं हुई/सत्य है, तो दावा विफल हो जाता है और NSAssert प्रदान किए गए संदेश के साथ अपवाद उठाता है। उदाहरण के लिए, NSAssert((a == b), @"Error message"); अपवाद उठाएगा जब ab के बराबर नहीं है। NSAssert1((a == b), @"Error message: %@", someErrorString);

NSLog सिर्फ सांत्वना के लिए कुछ लिखेंगे: NSAssert1 एक प्रकार है कि एक अतिरिक्त तर्क लेता है और इसलिए की तरह प्रदान की, प्रारूप स्ट्रिंग में सम्मिलित करता है।

उन सभी मैक्रोज़ के लिए प्रलेखन on Apple's developer site है।

+1

लेकिन उनके पास सिर्फ एक ऐसा फ़ंक्शन क्यों नहीं था जो '[एनएसएसटींग स्ट्रिंग विथफॉर्मैट: ....]' जैसे तर्कों को संभाला जा सके, 'NSAssert' के 5 अतिरिक्त रूप क्यों हैं? मुझे पता है कि आप ऐप्पल नहीं हैं, लेकिन सिर्फ सोच रहे हैं कि कोई जानता है या नहीं। – DonnaLea

+2

अहहः "विधि और रेखा संख्या की जानकारी प्रदान करने के लिए, एनएसएएसएसर्ट() दिनचर्या को मैक्रो के रूप में कार्यान्वित किया जाना चाहिए, और इसलिए स्वरूप स्ट्रिंग में विभिन्न प्रकार के तर्कों को संभालने के लिए, विधियों के लिए 5 दावा मैक्रोज़ हैं: NSAssert (हालत, विवरण), एनएसएएसएसर्ट 1 (हालत, प्रारूप, arg1), एनएसएएसएसर्ट 2 (हालत, प्रारूप, arg1, arg2), ..., एनएसएएसएसर्ट 5 (...)। " - http://mike.rssmemo.com/?p=40 – DonnaLea

+0

शून्य ने ए और बी का उदाहरण प्रदान किया है, लेकिन यह भी 'अगर' स्थिति के साथ हासिल किया जा सकता था। अगर और 'एनएसएएसएसर्ट' के बीच क्या अंतर है? – NSPratik

5

NSAssert, NSParameterAssert, NSAssert1, और मित्र दावा मैक्रोज़ हैं।

- (void) doSomethingWithPointer: (Foo*) foo 
{ 
    NSAssert(foo != NULL, @"The Foo pointer must not be NULL!"); 
    foo->something; 
} 

अधिक जानकारी के लिए स्टैक ओवरफ़्लो पर यहाँ questions tagged “assertions” देखें: इस प्रकार के दावे हालत जांच करता है कि चीख जब कुछ सही नहीं है।

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