पर संदेश भेजने से पहले जारी किया गया है, मैंने हाल ही में अपने किसी एक ऐप में एक क्रैश देखा है जब किसी ऑब्जेक्ट ने अपने प्रतिनिधि को संदेश देने का प्रयास किया था और प्रतिनिधि पहले से ही जारी कर दिया गया था।यह जांच कर रहा है कि कोई संदेश
फिलहाल, बस किसी भी प्रतिनिधि के तरीकों कॉल करने से पहले, मैं इस जांच चलाने:
if (delegate && [delegate respondsToSelector:...]){
[delegate ...];
}
लेकिन स्पष्ट रूप से यह करता है, तो प्रतिनिधि नहीं के बराबर नहीं है, लेकिन पुनः आवंटित की जाती किया गया है के लिए खाते में नहीं है।
प्रतिनिधि के dealloc
विधि में ऑब्जेक्ट के प्रतिनिधि को शून्य करने के अलावा, यह जांचने का एक तरीका है कि क्या प्रतिनिधि पहले ही रिलीज़ हो चुका है या नहीं, अब मुझे ऑब्जेक्ट का संदर्भ नहीं है।
'अगर (प्रतिनिधि)' अनावश्यक है - '[प्रतिनिधि उत्तर देने के लिए चयनकर्ता]]' प्रतिनिधि 'शून्य' होगा। – shosti
दिलचस्प बिंदु। इससे पहले नहीं सोचा था। –