我是目标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;发布于 2015-12-30 12:41:42
“匿名函数”是一个构建闭包的块。与函数和方法不同,闭包存储它的创建环境,因此您可以在代码中访问它。但是,如果实际的参数是足够的数据来执行您想要做的事情,那么您可以简单地向self发送一条消息来执行“命名”方法:
[self.Socket on:@"connect" callback:^(NSArray* data, SocketAckEmitter* ack)
{
[self connectTestCallback:data withAck:ack];
}];https://stackoverflow.com/questions/34529612
复制相似问题