内存泄漏发生在下列行内存泄漏的NSData
NSURL *imageURL = [NSURL URLWithString:currentElementValue];
NSData *ndata = [NSData dataWithContentsOfURL:imageURL];
UIImage *image1 = [[UIImage alloc] initWithData:ndata];
请帮助我。
内存泄漏发生在下列行内存泄漏的NSData
NSURL *imageURL = [NSURL URLWithString:currentElementValue];
NSData *ndata = [NSData dataWithContentsOfURL:imageURL];
UIImage *image1 = [[UIImage alloc] initWithData:ndata];
请帮助我。
它看起来像行
UIImage *image1 = [[UIImage alloc] initWithData:ndata];
是不是被清理正确。更改此任:
UIImage *image1 = [[[UIImage alloc] initWithData:ndata] autorelease];
或
UIImage *image1 = [UIImage imageWithData:ndata];
你IMAGEURL(NSURL
)和NDATA(NSData
)被自动释放所以这应该清理你的错误。
U可以释放在函数结束时在本地创建的对象,如下面
NSURL *imageURL = [NSURL URLWithString:currentElementValue];
NSData *ndata = [NSData dataWithContentsOfURL:imageURL];
UIImage *image1 = [[UIImage alloc] initWithData:ndata];
[ndata release];
[imageURL release];
这样每次分配的对象是释放
你正在发布自动发布的对象ndata,你会崩溃 –
在这个例子中'NSData'和'NSURL'都是自动发布的,不需要清理,因为两者都会导致崩溃。但是'UIImage'应该被释放。 – CaptainRedmuff
是否使用ARC该范围本身? – TheAmateurProgrammer
@theAmateurProgrammer:no – Anamika