पर कॉलिंग फ़ंक्शन का नाम प्रिंट करें उद्देश्य-सी का रनटाइम अपेक्षाकृत मजबूत लगता है, इसलिए मैं सोच रहा था कि फ़ंक्शन के नाम को लॉग करने का कोई तरीका है जिसे वर्तमान फ़ंक्शन (डीबगिंग उद्देश्यों के लिए) कहा जाता है।डीबग लॉग
मेरी स्थिति यह है कि चीजों का एक गुच्छा एक संपत्ति को सौंपता है, और ब्रेकपॉइंट सेट करने और हर बार कॉल स्टैक की जांच करने के बजाय, मैं केवल NSLog
संपत्ति को सेट करने वाले फ़ंक्शन का नाम चाहता हूं नए मूल्य के साथ।
तो क्या रनटाइम पर कॉल स्टैक तक पहुंच प्राप्त करना संभव है?
यदि आप 'sizeof (addr)' sizeof (addr)/sizeof (void *) '(या केवल 2) के साथ 'sizeof (addr)' को प्रतिस्थापित करते हैं तो यह बहुत अच्छा काम करता है। धन्यवाद! – Brian
फिक्स्ड। ओह, और फाउंडेशन वास्तव में इसे वास्तव में '- [एनएसटीएचड कॉलस्टैकसिंबल्स]' के माध्यम से उजागर करता है, जो एक सरणी देता है। आप इसे 'NSArray * syms = [[NSThread currentThread] callStackSymbols] के रूप में उपयोग कर सकते हैं; अगर ([syms count]> 1) एनएसएलओजी (@ "कॉलर:% @", [syms objectAtIndex: 1U]; ' –
अंतिम टिप्पणी: 'कॉलस्टैकसिंबल्स' एक क्लास विधि है। आपको इसे '[NSThread callStackSymbols]' के रूप में उपयोग करना होगा। – user102008