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

Objective c 将目标C匿名函数更改为非匿名函数,objective-c,anonymous-function,Objective C,Anonymous Function,我是objective c中的新手,在swift.io上工作,试图将其匿名回调转换为非匿名函数 - (void)on:(NSString * __nonnull)event callback:(void (^ __nonnull)(NSArray * __nonnull, SocketAckEmitter * __nonnull))callback; 基本上是试图转换 [self.Socket on:@"connect" callback:^(NSArray* data, SocketAckE

我是objective c中的新手,在swift.io上工作,试图将其匿名回调转换为非匿名函数

- (void)on:(NSString * __nonnull)event callback:(void (^ __nonnull)(NSArray * __nonnull, SocketAckEmitter * __nonnull))callback;
基本上是试图转换

[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");
}
但我不确定我是否应该这样定义它,也不知道如何称呼它。我试着把它称为callback:@selector(connectTestCallback),但显然没有用

以下是“on”函数的定义

- (void)on:(NSString * __nonnull)event callback:(void (^ __nonnull)(NSArray * __nonnull, SocketAckEmitter * __nonnull))callback;
“匿名函数”是构建闭包的块。与函数和方法不同,闭包存储其创建环境,因此您可以在代码中访问它。但是,如果实际参数是足够的数据来执行您想要执行的操作,您只需向
self
发送一条消息来执行“named”方法:


是的,我现在要用这个。在旁注中,在确认之后和之前需要有一个“];