首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将目标C匿名函数改为非匿名函数

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

Stack Overflow用户
提问于 2015-12-30 12:30:28
回答 1查看 295关注 0票数 0

我是目标c的新手,致力于swift.io,并试图将它的匿名回调转换为非匿名函数。

基本上试着转换

代码语言:javascript
复制
[self.Socket on:@"connect" callback:^(NSArray* data, SocketAckEmitter* ack) {
    NSLog(@"socket connected");
}];

到某种程度上

代码语言:javascript
复制
 [self.Socket on:@"connect" callback:connectTestCallback];

我试着定义一个下面的函数,我将调用它

代码语言:javascript
复制
- (void) connectTestCallback:(NSArray* )data withAck:(SocketAckEmitter *)ack
{
    NSLog(@"socket connected");
}

但我不确定我是否应该这么定义它,也不知道该如何称呼它。我尝试过将其称为回调:@selector(ConnectTestCallback),但显然这是行不通的。

以下是"on“函数的定义。

代码语言:javascript
复制
- (void)on:(NSString * __nonnull)event callback:(void (^ __nonnull)(NSArray * __nonnull, SocketAckEmitter * __nonnull))callback;
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-12-30 12:41:42

“匿名函数”是一个构建闭包的块。与函数和方法不同,闭包存储它的创建环境,因此您可以在代码中访问它。但是,如果实际的参数是足够的数据来执行您想要做的事情,那么您可以简单地向self发送一条消息来执行“命名”方法:

代码语言:javascript
复制
[self.Socket on:@"connect" callback:^(NSArray* data, SocketAckEmitter* ack) 
{
 [self connectTestCallback:data withAck:ack];
}];
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34529612

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档