从void方法存储变量

时间:2013-09-04 21:43:41

标签: objective-c

我有这样的方法:

- (void) advertiser:(MCNearbyServiceAdvertiser *)advertiser
didReceiveInvitationFromPeer:(MCPeerID *)peerID
               withContext:(NSData *)context
         invitationHandler:(void(^)(BOOL accept,
                                    MCSession *session))invitationHandler{

我需要复制并存储invitationHandler。稍后将使用它以下列方式:

invitationHandler(accept, session);

我该怎么做?

1 个答案:

答案 0 :(得分:0)

只需向您的类(不是属性)添加实例变量,并将其存储在那里。在你的班级定义:

@implementation MyClass {
  void(^invHandler)(BOOL accept, MCSession *session);
}

在您的方法中,存储它:

invHandler = Block_copy(invitationHandler);

之后,当你想要打电话时:

invHandler(accept, session);