2012-08-09 55 views
0

我在块中拥有以下一段代码,并且希望知道是否像枚举类似声明局部变量很酷?我真的不想处理__block等于是就想看看是否有任何问题,用下面的代码:Objective-C块中的变量范围

[self.assets enumerateObjectsUsingBlock:^(id obj, NSUInteger idx, BOOL *stop) { 
    NSData *imageToUpload = UIImageJPEGRepresentation([(UIImageView *)obj image], 90); 
    NSString *imageName = [NSString stringWithFormat:@"Image%d",idx]; 
    NSString *fileName = [NSString stringWithFormat:@"Image%d.jpeg",idx]; 
}]; 

回答

4

这些变量是没用的原样。它们不存储在其他地方,并在runloop结束时自动释放。

将您的块视为一个自包含的函数:它不会在其作用域之外写入任何内容,也不会返回任何内容。

+0

很酷谢谢。总是很高兴知道何时不需要编辑代码。 – jini 2012-08-09 15:35:53