【发布时间】:2013-04-15 19:52:37
【问题描述】:
我想用 ARC 迁移这段代码。
我知道我必须使用:
@autoreleasepool {}
但是我的两个水池排水有问题,不知道怎么办。
- (void)downloadImageToCache:(NSString*)_urlImage
{
NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
if (!(_urlImage) || (_urlImage == nil))
{
[pool drain];
return;
}
NSURL *url = [NSURL URLWithString:_urlImage];
NSData *data = [[[NSData alloc] initWithContentsOfURL:url] autorelease];
if (data != nil)
{
...do something...
}
else
{
...do something...
}
[pool drain];
}
【问题讨论】:
-
目前的方法有什么问题?
-
@H2CO3:ARC 不允许这样做。
-
@MartinR 我确定我已经看到
@autoreleasepool {}与 ARC 一起使用。 (但无论如何,谁在乎 ARC?我不关心。) -
@H2CO3:要么我误解了你,要么你误解了我 :-)
NSAutoreleasePool和drain不允许使用 ARC,你必须使用@autoreleasepool。 -
@MartinR 好吧。事实证明我误解了整个事情。这对我来说似乎很明显,显然对 OP 来说不是。你是对的。
标签: ios cocoa-touch automatic-ref-counting