Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Objective c DSBezelActivityView上的内存泄漏_Objective C_Ios_Memory Leaks_Uiactivityindicatorview - Fatal编程技术网

Objective c DSBezelActivityView上的内存泄漏

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

我的项目中有一个带有DSBezelActivityView的UIWebView,但它似乎有内存泄漏。我在加载页面时使用DSBezelActivityView。它在内存泄漏旁边正常工作。如何解决此内存泄漏

我使用了以下代码:

这是analyzer所说的: 对象泄漏:分配的对象稍后在此执行路径中未被引用,保留计数为+1 方法返回具有+1保留计数的Objective-C对象

- (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开头的方法,该方法不遵循约定