Objective c DSBezelActivityView上的内存泄漏
我的项目中有一个带有DSBezelActivityView的UIWebView,但它似乎有内存泄漏。我在加载页面时使用DSBezelActivityView。它在内存泄漏旁边正常工作。如何解决此内存泄漏 我使用了以下代码: 这是analyzer所说的: 对象泄漏:分配的对象稍后在此执行路径中未被引用,保留计数为+1 方法返回具有+1保留计数的Objective-C对象Objective c DSBezelActivityView上的内存泄漏,objective-c,ios,memory-leaks,uiactivityindicatorview,Objective C,Ios,Memory Leaks,Uiactivityindicatorview,我的项目中有一个带有DSBezelActivityView的UIWebView,但它似乎有内存泄漏。我在加载页面时使用DSBezelActivityView。它在内存泄漏旁边正常工作。如何解决此内存泄漏 我使用了以下代码: 这是analyzer所说的: 对象泄漏:分配的对象稍后在此执行路径中未被引用,保留计数为+1 方法返回具有+1保留计数的Objective-C对象 - (void)viewDidLoad { NSString *urlAddress = [NSString stringW
- (void)viewDidLoad
{
NSString *urlAddress = [NSString stringWithFormat:@"http://www.google.be"];
//Create a URL object.
NSURL *url = [NSURL URLWithString:urlAddress];
//URL Requst Object
NSURLRequest *requestObj = [NSURLRequest requestWithURL:url];
webView.delegate = self;
//Load the request in the UIWebView.
[webView loadRequest:requestObj];
[super viewDidLoad];
}
- (void)webViewDidStartLoad:(UIWebView *)webView {
[DSBezelActivityView newActivityViewForView:aiv withLabel:@"Laden..." width:90];
NSLog(@"werkt dit");
}
- (void)webViewDidFinishLoad:(UIWebView *)webView {
[DSBezelActivityView removeView];
}
似乎您正在泄漏由
newActivityViewForView:withLabel:width
返回的对象
根据苹果公司的报告:
您拥有您创建的任何对象
您可以使用名称以“alloc”、“new”、“copy”或“mutableCopy”(用于
例如,alloc、newObject或mutableCopy)
因此,您需要在适当的时候释放对象,我认为它是webviewdiffinishload:
。您的代码应该如下所示:
- (void)webViewDidStartLoad:(UIWebView *)webView {
DSBezelActivityView *bezelActivityView = [DSBezelActivityView newActivityViewForView:aiv withLabel:@"Laden..." width:90];
}
- (void)webViewDidFinishLoad:(UIWebView *)webView {
[DSBezelActivityView removeView];
[bezelActivityView release];
bezelActivityView = nil;
}
我不喜欢这个DSBezelActivityView
类,所以我的答案基于Cocoa内存管理约定。请记住,可能已经创建了一个以new开头的方法,该方法不遵循约定