我创建了150个UIwebviews并存储在一个名为myArray的NSArray中。使用这些webview后,我不需要这150个webview。然后我创建了另外100个UIWebViews并存储在myArray中。我认为首先会有150个网页视图自动解除分配。但是,当我检查仪器时,250个网络视图仍然存在。如何手动释放内存?我正在使用ARC。所以我无法使用发布方法。请告知。
答案 0 :(得分:1)
使用[NSMutableArray removeAllObjects]
:
NSMutableArray *webViews = [NSMutableArray new];
for (NSInteger i = 0; i < 150; i++)
[webViews addObject:[self createWebView]];
[webViews removeAllObjects];
for (NSInteger i = 0; i < 100; i++)
[webViews addObject:[self createWebView]];
答案 1 :(得分:1)
将对象添加到数组时,它会被保留 - 因此您需要清空数组以释放对象。
顺便说一句,UIWebView是一个非常重的对象。您可以考虑使用一个 UIWebView,并将NSURL存储在数组中,并根据需要将它们加载到UIWebView中。
答案 2 :(得分:0)
围绕使用UIWebViews的代码创建自动释放池。像这样:
@autoreleasepool {
// Create and use your UIWebViews here. Put them into an array, do whatever you want with them
}
// When you exit the @autoreleasepool block, the objects you created inside the block will be freed