2010-02-09 7 views
1

Моя цель - конвертировать NSURL в NSData без каких-либо утечек памяти ... Я искал много и нашел несколько ответов с сайта, но ничего не работает для меня. Может кто-нибудь мне помочь?NSData от NSURL Проблема с утечкой памяти

Ниже метод, который я пытался, но до сих пор ничего не работает:

NSURL *url = [NSURL URLWithString:@"http://images.apple.com/main/rss/hotnews/hotnews.rss"]; 
NSData *data; 
data = [NSData dataWithContentsOfURL:url]; 

NSError *error; 
NSString* contents = [NSString stringWithContentsOfURL:[NSURL URLWithString:@"http://images.apple.com/main/rss/hotnews/hotnews.rss"] encoding:NSUTF8StringEncoding error:nil]; 
NSData* xmlData = [contents dataUsingEncoding:NSUTF8StringEncoding]; 

NSURL *url = [[NSURL alloc]initWithString:@"http://images.apple.com/main/rss/hotnews/hotnews.rss"]; 
NSData *data = [[NSData alloc]initWithContentsOfURL:url options:0 error:nil]; 
/*do something with data*/ 
[data release]; 
[url release]; 

Примечание:

Когда я изменить свой URL, чтобы http://www.wikipedia.org код не имеет никакой утечки памяти ... Помоги мне ...

Заранее спасибо.

ответ

0
NSURL *url = [NSURL URLWithString:@"http://images.apple.com/main/rss/hotnews/hotnews.rss"]; 

NSData *data ; data= [NSData dataWithContentsOfURL:url]; 


NSError error; NSString contents = [NSString stringWithContentsOfURL:[NSURL URLWithString:@"http://images.apple.com/main/rss/hotnews/hotnews.rss"] encoding:NSUTF8StringEncoding error:nil]; 

NSData* xmlData = [contents dataUsingEncoding:NSUTF8StringEncoding]; 

NSURL *url = [[NSURL alloc]initWithString:@"http://images.apple.com/main/rss/hotnews/hotnews.rss"]; 

NSData *data = [[NSData alloc]initWithContentsOfURL:url options:0 error:nil]; 

/do something with data/ 

[data release]; 

[url release]; 
+0

при принятии или обновлении вопроса, пожалуйста, рассмотрите возможность редактирования вопроса, а не отвечать на свой вопрос – Nithin

+0

принять ответы, которые, по вашему мнению, являются лучшими или полезными, другие ответили на ваши вопросы. Вы можете принять его, проверив отметку tic ниже каждого ответа на заданные вами вопросы. – Nithin

3

Рассматривая образцы кода, вы делаете это правильно - утечки не должно быть.

Тот факт, что ваша утечка появляется только с определенными URL-адресами, заставляет меня думать, что это происходит где-то еще в вашем коде - что вы делаете с данными, когда у вас есть это?

Также вы испытываете утечки на тренажере или устройстве? Симулятор иногда сообщает об утечках там, где их нет - вы всегда должны делать чек на устройстве, чтобы убедиться, что это настоящая утечка, а не только симулятор, являющийся нечетным.

Сэм

PS Для форматирования кода, просто поставить 4 пробела перед каждой строки кода. (или выберите его и нажмите кнопку с образцом кода!)

Смежные вопросы