我在块中有以下代码片段,并想知道在枚举中声明局部变量是否很酷?我真的不想处理__block等,所以想看看下面的代码是否有任何问题:
[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];
}];
答案 0 :(得分:4)
这些变量原样无用。它们不存储在其他地方,并且在runloop结束时自动释放。
将您的块视为一个自包含的函数:它不会在其范围之外写入任何内容,也不会返回任何内容。