我从这里的另一个线程得到了这段代码,它完美的工作,但它泄漏,我不知道如何释放它。我曾尝试将“autorelease”语句添加到GoToNext alloc行。它没有帮助。任何人都知道如何妥善处理?如何释放此分配?
webView.delegate = [[GoToNext alloc] initWithTarget:self andNext:@selector(loadUpdateGraph)]; //leak
这是GoToNext代码:
.H
@interface GoToNext : NSObject <UIWebViewDelegate> {
id __weak target;
SEL next;
}
-(id)initWithTarget:(id)target andNext:(SEL)next;
-(void)webViewDidFinishLoad:(UIWebView *)webView;
@end
.M
#import "GoToNext.h"
@implementation GoToNext
-(id)initWithTarget:(id)_target andNext:(SEL)_next {
self = [super init];
if (self) {
target = _target;
next = _next;
}
return self;
}
-(void)webViewDidFinishLoad:(UIWebView *)webView {
[target performSelector:next];
}
@end
对于每个init,你不需要自己释放它吗?所以不应该有'self = [[super init] autorelease];'?我只是自己进入Xcode,所以我可能会错的! – romo 2012-07-13 20:59:04
我刚刚尝试过,它会导致僵尸错误,并崩溃应用程序。 :( – MrHappyAsthma 2012-07-13 21:56:41