2012-03-14 5 views
5

में "sendDidFinish" को कैसे प्रबंधित करें मैं मेल/ट्विटर/फेसबुक के साथ शेयरकिट का उपयोग करता हूं और मैं उद्देश्य-सी के लिए वास्तव में नया हूं। शेयरकिट अच्छी तरह से काम करता है और मेरी छवियों को भेजता है जैसे इसे करना चाहिए।शेयरकिट

मेरे ऐप में मेरे पास एक स्क्रीनशॉट फ़ंक्शन है। मैं ऐप को स्क्रीनशॉट लेने पर 'फ्रीज' करना चाहता हूं, शेयरकिट-एक्शन के पीछे दृश्य में किसी भी शेक- या स्पर्श-ईवेंट को भेजने के लिए रोकना चाहता हूं। मेरी स्क्रीनशॉट परत में मैं तीन बटन जो उनके निर्दिष्ट सेवा के shareItem-तरीकों कहते हैं, की तरह

[SHKTwitter shareItem:item]; 

vereything यहाँ तक ठीक काम करता है 'की है। लेकिन अब जब प्रेषण समाप्त हो गया है (या रद्द या गलत किया गया है) मुझे ऐप को 'अनफ्रीज़' करने की ज़रूरत है, तो शेयरकिट को मेरे ऐप को यह बताने चाहिए कि इसे किसी भी स्पर्श- या शेक-एक्शन को फिर से सुनने की अनुमति है।

मुझे खेद है, लेकिन मुझे लगता है कि मैं यहां प्रतिनिधि का उपयोग करने की अवधारणा को समझ नहीं पा रहा हूं। मेरा मतलब है, 'sendDidFinish' एक प्रतिनिधि के अंदर होना है? और यदि हां, तो मैं शेयरकीट को कैसे बता सकता हूं जो इसका प्रतिनिधि है? या क्या मुझे भेजने-सेवा कक्षाओं (जैसे SHKItem या SHKFacebook) को संपादित करना है?

कृपया इस प्रश्न के लिए मुझे नीचे मत छोड़ो। मैं वास्तव में इस रहस्य के पीछे जाना चाहता हूं ...

उत्तर

12

SHKTwitter SHKOAuthSharer से प्राप्त होता है, जो SHKSharer से प्राप्त होता है। SHKSharer का एक प्रतिनिधि प्रोटोकॉल है जिसे "SharerDelegate" कहा जाता है।

तो तुम SHKTwitter का एक उदाहरण का उपयोग कर सकते है, तो के रूप में यह के प्रतिनिधि सेट:

shkTwitterInstance.shareDelegate = yourDelegateObject. 

और प्रतिनिधि विधि

- (void)sharerFinishedSending:(SHKSharer *)sharer;. 

लागू कि कोशिश करो।

संपादित करें (अन्य, से अधिक लोकप्रिय, समाधान)

इसके अलावा, आप SHKTwitter वस्तु से "SHKSendDidFinish" अधिसूचना के लिए अपने वस्तु Suscribe कर सकते हैं।

[[NSNotificationCenter defaultCenter] addObserver:yourObject selector:@selector(theMethodthatYouWantToExecuteWhenTheNotificationIsRaised:) name:@"SHKSendDidFinish" object:shkTwitterObject]; 
+2

अन्य विकल्प यह है कि आप अपने ऑब्जेक्ट को SHKTwitter ऑब्जेक्ट से "SHKSendDidFinish" अधिसूचना पर संदेह करते हैं। आपकी प्रतिक्रिया के लिए – LuisEspinoza

+0

अरे, thanx! बहुत आसान लगता है ... :-) मैं अधिसूचना की सदस्यता कैसे ले सकता हूं? – headkit

+1

ओ.के., मुझे कुछ ऐसा लगता है जैसे [[NSNotificationCenter defaultCenter] addObserver: self selector: @selector (your method) नाम: @ "SHKSendDidFinish" ऑब्जेक्ट: nil]; ' और मैं इसे आज़माउंगा। – headkit

संबंधित मुद्दे