Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/40.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
Iphone 来自NSURL内存泄漏问题的NSData_Iphone - Fatal编程技术网

Iphone 来自NSURL内存泄漏问题的NSData

Iphone 来自NSURL内存泄漏问题的NSData,iphone,Iphone,我的目标是将NSURL转换为NSData,而不发生任何内存泄漏。。。我搜索了很多,从网站上找到了不止一个答案,但没有一个对我有用。有人能帮我吗 以下是我尝试过的方法,但到目前为止没有任何效果: NSURL *url = [NSURL URLWithString:@"http://images.apple.com/main/rss/hotnews/hotnews.rss"]; NSData *data; data = [NSData dataWithContentsOfURL:url]; NSE

我的目标是将
NSURL
转换为
NSData
,而不发生任何内存泄漏。。。我搜索了很多,从网站上找到了不止一个答案,但没有一个对我有用。有人能帮我吗

以下是我尝试过的方法,但到目前为止没有任何效果:

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时,代码没有任何内存泄漏。。。帮帮我


提前感谢。

查看代码示例,您做得对-应该没有泄漏

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上,这让我觉得它发生在你代码的其他地方——一旦你有了数据,你会对数据做什么

此外,您是否正在测试模拟器或设备是否存在泄漏?模拟器有时会在没有泄漏的地方报告泄漏——你也应该经常检查设备,以确保它是真正的泄漏,而不仅仅是模拟器有问题

萨姆


PS要格式化代码,只需在每行代码前面加4个空格。(或选择并点击代码示例按钮)

在制作或更新您的问题时,请考虑编辑问题,而不是回答您自己的问题,接受您认为是最好的,或是帮助的,其他人已经给出您的问题的答案。你可以在你所问问题的每个答案下面勾选一个tic标记来接受它。