Mik*_*keS 2 c xcode block objective-c
最近,我试图调试一些代码,我的想法让我感到困惑的是我做错了什么.我的问题的简化版本如下:
for(int x = 0; x < [myArray count]; x++);
{
//perform some action
}
Run Code Online (Sandbox Code Playgroud)
问题是我想要执行的操作只会发生一次.当然,我最终注意到问题是我在for循环结束时意外地包含了一个额外的分号.
for(int x = 0; x < [myArray count]; x++);<---- Oops!
{
//perform some action
}
Run Code Online (Sandbox Code Playgroud)
但后来我开始疑惑......为什么那些代码甚至有点工作?事实证明,我的for循环正在执行,然后下面的代码作为"匿名块"运行.
Objective C中的匿名块有什么意义?什么时候/哪里有用?
为什么我的代码不会在Xcode中产生某种警告?我想你可以把一段旧代码扔进一对额外的大括号中,然后你突然把它作为匿名块执行?
它们可用于确定变量的范围.虽然它更多的凸版印刷的东西,当你需要定制一系列同类型的对象,让您重复使用相同的变量也可以是得心应手.比如说你正在设置一些NSURLRequests:
NSMutableArray *requests = [NSMutableArray array];
{
NSMutableURLRequest *request = [[NSMutableURLRequest alloc] init];
request.URL = [NSURL URLWithString:@"http://A"];
request.HTTPMethod = @"GET";
[requests addObject:request];
}
// ... etc
{
NSMutableURLRequest *request = [[NSMutableURLRequest alloc] init];
request.URL = [NSURL URLWithString:@"http://Z"];
request.HTTPMethod = @"POST";
[requests addObject:request];
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
336 次 |
| 最近记录: |