मैं यह पता लगाने की कैसे चीजें वास्तव में काम करते हैं की कोशिश करो। तो मैंने सोचा कि जब मैं श्रेणियों का उपयोग करके कुछ तरीकों को ओवरराइट कर दूंगा, तो मुझे दिलचस्प एनएसएलॉग मिलेगा।किसी श्रेणी के साथ विधि को ओवरराइट करते समय मूल कार्यान्वयन को कैसे कॉल करें?
@implementation UIView(Learning)
- (UIView *)hitTest:(CGPoint)point withEvent:(UIEvent *)event {
NSLog(@"-hitTest:withEvent: event=%@", event);
return [self hitTest:point withEvent:event];
}
@end
सुपर और स्वयं यहां काम नहीं करते हैं। क्या मूल कार्यान्वयन को कॉल करने का कोई तरीका है- hitTest: withEvent :? मैं जो चाहता हूं वह हर बार एक एनएसएलओजी है- हिटटेस्ट: के साथ: UIView पर कॉल किया जाता है।
यह सिर्फ व्यक्तिगत सीखने प्रयोजनों के लिए है। मैं कार्रवाई में घटना वितरण देखना चाहता हूँ।
सुपर एक वर्ग में है क्योंकि आप 'काम नहीं करता है इसे एक ही कक्षा में नहीं बुलाओ, आप इसे कक्षा के सुपर पर बुला रहे हैं। तो इस मामले में, सुपर एक यूआईआरस्पॉन्डर है जिसमें हिटटेस्ट नहीं है: एवेन्ट विधि के साथ। स्वयं को कॉल करने से केवल एक अनंत लूप में परिणाम होता है क्योंकि आप हिटटेस्ट ओवरराइड कर रहे हैं: "स्वयं" के साथ Ivent। –
मेरी टिप्पणी यहां जगह से थोड़ी दूर दिखती है, लेकिन पिछली टिप्पणी से पहले इसे समझ में आया था। –