में एनएसओब्जेक्ट विवरण और कस्टम सारांश मैं ऑब्जेक्ट के -(NSString*)description
को ओवरराइड करता हूं हालांकि एक्सकोड हमेशा चर दृश्य में सारांश फ़ील्ड में error: summary string parsing error
प्रदर्शित करता है।एक्सकोड
- (NSString*)description {
return [NSString stringWithFormat:@"<%@ %p> x=%f, y=%f", self.class, self, _x, _y];
}
अगर मैं कंसोल में po objectName
टाइप करें, LLDB जुर्माना उत्पादन, के रूप में उम्मीद तथापि Xcode और कमांड p objectName
हमेशा त्रुटि से संकेत मिलता है दिखाता है, इसलिए उचित डिबग विवरण प्रारूप क्या करना है:
मेरे वर्तमान कार्यान्वयन निम्नलिखित है सारांश क्षेत्र का काम करें? ध्यान देने योग्य है कि "पी" कमांड का आउटपुट सारांश संदेश के समान है जो आप फाउंडेशन कक्षाओं के उदाहरणों के लिए एक्सकोड में देखते हैं।
अद्यतन:
जहां तक मेरा "Xcode में WWDC 2012 सत्र डीबगिंग" से देख सकते हैं, कस्टम के सारांश कस्टम अजगर स्क्रिप्ट केवल का उपयोग कर कार्यान्वित किया जा सकता। -(NSString*)description
या -(NSString*)debugDescription
विधियां किसी भी तरह से सारांश संदेशों से कनेक्ट नहीं हैं। मैंने सोचा कि वे इसलिए हैं क्योंकि मुझे एक त्रुटि प्रदर्शित हुई है, लेकिन ऐसा लगता है कि यह कक्षाओं के लिए एक मानक संदेश है जिनके पास अपने स्वयं के स्वरूप नहीं हैं।
आप कहते हैं "ओवरराइड" - क्या यह सबक्लास या श्रेणी है? और सुपरक्लास क्या है? –
और मैं आपको यह नहीं कहता कि आप एक्सकोड में "पी ऑब्जेक्टनाम" करते हैं। एक्सकोड डीबगर में मैंने हमेशा ऑब्जेक्ट के लिए 'po' किया है। 'पी' स्केलर्स के लिए है। –
नोट करने के लिए एक बात, हॉट लिक्स, यह है कि "पी ऑब्जेक्टनाम" मानक फाउंडेशन ऑब्जेक्ट्स (आपके एनएसएसटींग्स, आपके एनएसएआरआरएआर इत्यादि) के लिए काम करेगा क्योंकि एलएलडीबी में अंतर्निर्मित फॉर्मेटर्स हैं जो जानते हैं कि किसी भी को चलाने के बिना ऑब्जेक्ट को कैसे प्रारूपित किया जाए आपके कार्यक्रम में कोड। जैसा कि एंडी ने अपने अपडेट में नोट किया है, आप पाइथन में अपनी ऑब्जेक्ट के लिए अपने स्वयं के कस्टम फॉर्मेटर्स भी लिख सकते हैं - इसे लटकने के बाद यह बहुत आसान है। –