将目标C匿名函数更改为非匿名函数

时间:2015-12-30 12:30:28

标签: objective-c anonymous-function

我是目标c的新手,正在使用swift.io并尝试将其匿名回调转换为非匿名函数。

基本上试图转换

[self.Socket on:@"connect" callback:^(NSArray* data, SocketAckEmitter* ack) {
    NSLog(@"socket connected");
}];

类似

 [self.Socket on:@"connect" callback:connectTestCallback];

我尝试定义了一个我将调用的以下函数

- (void) connectTestCallback:(NSArray* )data withAck:(SocketAckEmitter *)ack
{
    NSLog(@"socket connected");
}

但我不确定这是不是我应该如何定义它,并且不知道如何调用它。我已经尝试将其称为回调:@ selector(connectTestCallback)但显然没有用。

以下是" on"的定义功能

- (void)on:(NSString * __nonnull)event callback:(void (^ __nonnull)(NSArray * __nonnull, SocketAckEmitter * __nonnull))callback;

1 个答案:

答案 0 :(得分:2)

"匿名功能"是一个封闭的块。与函数和方法相反,闭包存储其创建环境,因此您可以在代码中访问它。但是,如果实际参数足够数据来执行您想要执行的操作,则只需向bundle install发送消息即可执行"命名"方法:

self