如何在sharekit中处理"sendDidFinish"

hea*_*kit 5 delegates objective-c sharekit

我使用sharekit和mail/twitter/facebook,我对objective-c很新.sharekit运行良好,并发送我应有的图像.

在我的应用程序中,我有截屏功能.我希望应用程序在拍摄屏幕截图时"冻结",停止向sharekit-action后面的场景发送任何摇动或触摸事件.在我的截图层中,我有三个按钮,它们调用指定服务的shareItem方法,比如

[SHKTwitter shareItem:item];
Run Code Online (Sandbox Code Playgroud)

vereything工作正常,直到这里.但现在当发送完成(或取消或出错)我需要应用程序"解冻"时,sharekit应该告诉我的应用程序允许再次听取任何触摸或摇动动作.

对不起,我想我不明白在这里使用委托的概念.我的意思是,'sendDidFinish'是否属于代表?如果是这样,我怎么能告诉sharekit谁是它的代表呢?或者我是否必须编辑发送服务类(如SHKItem或SHKFacebook)本身?

请不要因为这个问题而低估我.我真的想要落后这个谜......

Lui*_*oza 12

SHKTwitter继承自SHKSharer继承的SHKOAuthSharer.SHKSharer有一个名为"SharerDelegate"的委托协议.

所以你可以使用SHKTwitter的一个实例,然后将它的委托设置为:

shkTwitterInstance.shareDelegate = yourDelegateObject.
Run Code Online (Sandbox Code Playgroud)

并实现委托方法

- (void)sharerFinishedSending:(SHKSharer *)sharer;.
Run Code Online (Sandbox Code Playgroud)

试试吧.

编辑(其他,更受欢迎,解决方案)

此外,您可以将您的对象从SHKTwitter对象的"SHKSendDidFinish"通知中扣除.

[[NSNotificationCenter defaultCenter] addObserver:yourObject selector:@selector(theMethodthatYouWantToExecuteWhenTheNotificationIsRaised:) name:@"SHKSendDidFinish" object:shkTwitterObject];
Run Code Online (Sandbox Code Playgroud)

  • 另一种方法是将您的对象从SHKTwitter对象的"SHKSendDidFinish"通知中扣除. (2认同)