kfo*_*rim 1 iphone cocoa objective-c ipad ios
我已经在许多iOS标题中看到(^)被使用,我从来没有遇到过为什么使用该标志的推理.有人可能想开导这个吗?
谢谢.
它表示一个块。块是一种语法,它允许您创建回调函数,并将其作为参数传递给方法。在其他语言中,这类似于闭包,lambda或匿名类。
例如,列出以下参数的参数:
void(^)(NSString *myStr)
希望您传入一个返回void的块/函数,并接收一个NSString指针。
您可以使用以下语法,根据方法中声明的预期参数创建一个块:
^(<Parameters>) { <Body> }
Run Code Online (Sandbox Code Playgroud)
例如,期望使用块参数的方法可能如下所示:
-(void)doSomething:(void(^)(NSString *myStr))theBlock;
Run Code Online (Sandbox Code Playgroud)
...可以这样称呼:
[self doSomething:^(NSString *myStr) { NSLog(@"The String is: %@", myStr); }];
Run Code Online (Sandbox Code Playgroud)
您的块将doSomething:像函数一样使用参数名称被回调:
-(void)doSomething:(void(^)(NSString *myStr))theBlock {
theBlock(@"Hello!");
}
Run Code Online (Sandbox Code Playgroud)
...将显示:
The String is: Hello!
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
203 次 |
| 最近记录: |