का उपयोग कर सभी लाइव बाइट्स को मुक्त नहीं कर रहा है। मैं वर्तमान में आईओएस 5.1 में एक नेविगेशन नियंत्रक ऐप का निर्माण कर रहा हूं जो एआरसी का उपयोग करता है। मुझे अक्सर वेबपृष्ठों को प्रदर्शित करने की आवश्यकता होती है और मैंने एक वेब व्यूअर बनाया है जो कि पक्षों के चारों ओर कुछ कस्टम सामग्री के साथ एक UIWebView है। जब उपयोगकर्ता पृष्ठ को देखकर समाप्त हो जाता है तो वे बैक बटन दबाते हैं जो कस्टम वेब व्यूअर से जुड़े सभी मेमोरी को रिलीज़ करना चाहिए। मेरी समस्या यह है कि बैक बटन हिट होने पर सभी मेमोरी रिलीज़ नहीं होती हैं। मैंने एक खिलौना ऐप बनाया है (on github) कि केवल दो बटन हैं जिनमें प्रत्येक का पहला उत्तरदाता है जो एक अलग पृष्ठ पर कॉल करता है।UIWebView एआरसी
@implementation ViewController
-(IBAction)googlePressed:(id)sender
{
CustomWebView *customWebView = [[CustomWebView alloc] initWithStringURL:@"http://www.google.com"];
[self.navigationController pushViewController:customWebView animated:NO];
}
-(IBAction)ksbwPressed:(id)sender
{
CustomWebView *customWebView = [[CustomWebView alloc] initWithStringURL:@"http://www.ksbw.com/news/money/Yahoo-laying-off-2-000-workers-in-latest-purge/-/1850/10207484/-/oeyufvz/-/index.html"];
[self.navigationController pushViewController:customWebView animated:NO];
}
-(IBAction)feedProxyPressed:(id)sender
{
CustomWebView *customWebView = [[CustomWebView alloc] initWithStringURL:@"http://feedproxy.google.com/~r/spaceheadlines/~3/kbL0jv9rbsg/15159-dallas-tornadoes-satellite-image.html"];
[self.navigationController pushViewController:customWebView animated:NO];
}
-(IBAction)cnnPressed:(id)sender
{
CustomWebView *customWebView = [[CustomWebView alloc] initWithStringURL:@"http://www.cnn.com/2012/04/04/us/california-shooting/index.html?eref=rss_mostpopular"];
[self.navigationController pushViewController:customWebView animated:NO];
}
CustomWebView सिर्फ एक UIWebView UIWebView संपत्ति को आईबी में जुड़े हुए
@implementation CustomWebView
@synthesize webView, link;
- (id)initWithStringURL:(NSString *) stringURL
{
if (self = [super init]) {
link = stringURL;
}
return self;
}
- (void)viewDidLoad
{
[super viewDidLoad];
NSURL *url = [NSURL URLWithString:link];
NSURLRequest *urlRequest = [NSURLRequest requestWithURL:url];
[webView loadRequest:urlRequest];
}
- (void)viewDidUnload
{
[super viewDidUnload];
}
मेरे समस्या मैं एक बार सब कुछ भरी हुई है प्रारंभिक ViewController होने के लिए ढेर आधारभूत सेट है कि है। मैं तो एक पृष्ठ तो लोड हो रहा है ViewController लौटने के बाद ढेर की जाँच करें और निम्नलिखित heapshots मिलती है:
कौन सा चलता एक बटन को दबाकर और ढेर ViewController की ओर लौटने की प्रत्येक श्रृंखला के बाद बढ़ रहा है कि भले ही कस्टमवेबव्यू सभी को रिहा किया जाना चाहिए।
संपादित करें:
नमूना परियोजना ऊपर वर्णित पाया जा सकता है on github
क्या आप वाकई Zombies अक्षम हैं बनाया है पाया? – MishieMoo
हां, लाश अक्षम हैं – brendan
अंधेरे में शॉट लेकिन अपनी आईबीओलेट गुण (कमजोर) बनाने का प्रयास करें। – Rengers