एआरसी माइग्रेशन टूल प्रवास के साथ शुरू करने से पहले इस कोड को स्वीकार करने से इनकार कर रहा है:"चयनकर्ता के लिए कोई ज्ञात उदाहरण विधि नहीं 'निष्पादित करने के लिए कैसे करें चयनकर्ता: withObject: afterDelay:'" जब एआरसी में माइग्रेट हो रहा है?
[self.delegate performSelector:@selector(overlayDismissed:) withObject:self afterDelay:0];
प्रतिनिधि एक प्रोटोकॉल के साथ इस पद्धति लागू करने के लिए मजबूर किया जाता है, और यह ठीक काम करना चाहिए:
@protocol OverlayDelegate <NSObject>
- (void)overlayDismissed:(Overlay*)overlay;
@end
@interface Overlay : UIImageView {
id<OverlayDelegate> delegate;
}
@property (nonatomic, assign) id<OverlayDelegate> delegate;
एआरसी के साथ क्या गलत है? यह मुझे क्यों बता रहा है कि "चयनकर्ता के लिए कोई ज्ञात उदाहरण विधि नहीं है" चयनकर्ता: withObject: afterDelay: '?
तो इसका मतलब है कि एआरसी के तहत उन दिनों जहां हम प्रतिनिधियों को आईडी के रूप में घोषित करते हैं? बस इसके बजाय NSObject पर भरोसा करते हैं? (मेरे लिए जो किसी भी तरह से समझ में आता है) – openfrog
एआरसी स्मृति प्रबंधन उद्देश्यों के लिए इन चीजों को लागू करता है। यदि आप जानते हैं कि आपका प्रतिनिधि एनएसओब्जेक्ट प्रकार का होगा - तो बस यह बताएं कि यह समस्या दूर हो गई है। – dtuckernet
या फिर भी 'आईडी' का उपयोग करें और' NSObject' से विधियों का उपयोग न करें। आप 'NSObject' से विधियों का उपयोग क्यों कर रहे हैं? क्या यहां कोई आवश्यकता है? – mattjgalloway