考虑下面的代码:如何强制一个未使用的变量成为块的一部分?
- (void)downloadObjectUsingURL: (NSURL *)url;
{
id file = [self createFileForURL: url];
Finalization objectFinalization = ^() {
// we don't access url here, but it would be handy to see it in the debugger
[file close];
}
id request = [self buildRequestFromURL: url];
[object download: request
toFile: file
finalization: objectFinalization];
}
什么是强制url
被复制为objectFinalization
的上下文的一部分最简单的方法,复制并作为objectFinalization
更容易调试的目的,一部分通过呢?
我可以想出几个可能的答案,但他们没有一个让我感觉好。我可以做NSLog(@"%@",url)
,但是会导致喷出。我可以做一个NSAssert(url,...);
或if (url) {}
,但这两个都没有真正表达我想要做的事情。
我要继续前进,只是接受这一点,因为我认为这是我会得到的最佳答案。但是我可能会为此做一些宏:'#define FORCE(a)NSLog(@“%@”,a)'或'#define FORCE(a)' – 2011-05-16 18:45:22