मैं वास्तव में NSAssert से बात नहीं कर सकता, लेकिन मुझे लगता है कि यह C के मुखर () के समान काम करता है।
आपके कोड में शब्दार्थ अनुबंध लागू करने के लिए assert () का उपयोग किया जाता है। इसका क्या मतलब है, आप पूछें?
ठीक है, यह ऐसा है जैसा आपने कहा था: यदि आपके पास एक फ़ंक्शन है जिसे कभी भी -1 प्राप्त नहीं करना चाहिए, तो आप मुखर () लागू कर सकते हैं:
शून्य gimme_positive_ints (int i) {
मुखर (i> 0);
}
और अब आपको एरर लॉग (या STDERR) में ऐसा कुछ दिखाई देगा:
दावा i> 0 विफल: फ़ाइल example.c, पंक्ति 2
इसलिए न केवल संभावित खराब इनपुट के खिलाफ यह सुरक्षित-गार्ड है, बल्कि यह उन्हें एक उपयोगी, मानक तरीके से लॉग करता है।
ओह, और कम से कम C मुखर () में एक मैक्रो था, इसलिए आप अपने रिलीज़ कोड में नो-ऑप के रूप में मुखर () को फिर से परिभाषित कर सकते थे। मुझे नहीं पता कि अगर NSAssert (या यहां तक कि किसी भी अधिक) के साथ मामला है, लेकिन यह उन जांचों को संकलित करने के लिए बहुत उपयोगी था।