2012-05-04 13 views
13

उदाहरण के लिए, मैं अपने canPeformAction को भेजे गए कार्यों का पता लगाना चाहता हूं और डीबगर में "होवर" के साथ प्रत्येक घटना में प्रदर्शित होने के लिए वे बहुत अधिक हैं। इसलिए, मैं लॉग का पता लगाने और अपने परीक्षण चक्र के बाद यह जांच करना चाहते हैं।वहाँ एक रास्ता एसईएल कार्रवाई मुद्रित करने के लिए है?

- (BOOL)canPerformAction:(SEL)action withSender:(id)sender { 
    NSLog(@"%s: sender=%@", __FUNCTION__, sender, action); 
} 
+7

मैं अपने जवाब मिला: NSStringFromSelector (कार्रवाई) – mobibob

उत्तर

34

आप

NSLog(@"%s: sender=%@, selector=%s", __FUNCTION__, sender,sel_getName(action)); 
+4

'sel_getName()' एक सी स्ट्रिंग, न कि एक 'NSString' देता है। या प्रारूप के लिए '% s' का उपयोग करें (बेहतर)' NSStringFromSelector() '। –

+0

धन्यवाद बीमार संपादित मेरी asnwer –

+1

धन्यवाद जैक्स और डेव - मैं मैक्रो NSStringFromSelector के बाद मैं प्रश्न पूछा पाया। +1 और आप के लिए स्वीकार करते हैं। – mobibob

6

उपयोग NSStringFromSelector आसानी से चयनकर्ता का मुद्रण योग्य नाम करना चाहते हैं।

NSStringFromSelector(action)

NSString * NSStringFromSelector (SEL aSelector);

किसी दिए गए चयनकर्ता के एक स्ट्रिंग प्रतिनिधित्व देता है।

- (BOOL)canPerformAction:(SEL)action withSender:(id)sender { 
    NSLog(@"Action: %@", NSStringFromSelector(action)); 
} 
संबंधित मुद्दे