2012-06-25 22 views
14

(मैं एक कोको शुरुआत कर रहा हूँ और) मैं सोच रहा हूँ कारण है कि हम क्या करना चाहिए:समझौता NSLog वाक्य रचना

NSLog(@"this is the variable value: %d",variable); 

और नहीं कुछ इस तरह:

[NSLog outputThis:@"this is the variable value: %d" param:variable]; 
+1

क्योंकि दूसरा कथन 'output' कहता है: param: 'NSLog' ऑब्जेक्ट पर विधि। कोको ढांचे में 'एनएसएलओजी' सिर्फ एक समारोह है। – Eimantas

+0

हां लेकिन यह कक्षा एनएसएलओजी के लिए एक क्लास विधि हो सकता था, जैसे [एनएसएसटींग स्ट्रिंगविथस्ट्रिंग: @ "यह एक स्ट्रिंग है"]; ? – tahir

+0

एनएसएलओजी कक्षा की तरह "आवाज" नहीं करता है। एनएसएलगर एक वर्ग के नाम के लिए बेहतर विकल्प होगा। अब यह सिर्फ एक कार्रवाई है। – Eimantas

उत्तर

18

मैं मानता हूं कि यह शुरू होने पर यह बहुत भ्रमित है। मुख्य कारण यह है कि कोर फाउंडेशन में कई अन्य लोगों की तरह एनएसएलओजी विधि एक उद्देश्य-सी एपीआई की बजाय सी-आधारित एपीआई है। सी-स्टाइल फ़ंक्शंस इस मायफंक्शन (myParameter1, myParameter2) जैसा दिखता है।

आपके द्वारा उपयोग की जाने वाली सभी जीयूआई सामग्री [UIView presentModalViewController:] आदि एक उद्देश्य-सी एपीआई के आसपास आधारित है, जिसमें आपने स्क्वायर ब्रैकेट्स (जिन्हें ओब्जे-सी में चयनकर्ता कहा जाता है) के साथ देखा है। उद्देश्य-सी भाषा सी के शीर्ष पर बैठती है, इसलिए आपको अधिकांश ऐप्स में शैलियों दोनों मिल जाएंगी।

+0

ऐप्पल सबकुछ तय करता है, और हमें यह पसंद आएगा – onmyway133

5

मैं यह समझ के रूप में, NSLog एक उद्देश्य सी समारोह नहीं है लेकिन एक सी समारोह कोको की नींव में बनाया गया है। इसलिए यह विविध सी कार्यों के साथ भिन्न सी कार्यों के अनुरूप है।

4

NSLog एक वर्ग की तरह प्रतीत होता है, लेकिन ऐसा नहीं है।

NSLog कंसोल के लिए डिबग बयान मुद्रण के लिए एक FoundationKit कार्य है। यह NSObjCRuntime.h में परिभाषित किया गया है:

void NSLog(NSString format, ...); 

यहाँ जानकारी का एक अच्छा राशि है: http://cocoadev.com/wiki/NSLog

संपादित करें: रूप @fyngyrz ने कहा, पेज मर चुका है। तो here is a wayback-machine version of the page from 2012

+1

नहीं, ऐसा नहीं है। पृष्ठ चला गया है – fyngyrz

+0

@fyngyrz Thanx। जवाब संपादित किया। – Alladinian

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