我從這裏的另一個線程得到了這段代碼,它完美的工作,但它泄漏,我不知道如何釋放它。我曾嘗試將「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