【发布时间】:2011-04-16 04:41:43
【问题描述】:
出于某种原因,以下代码可以正常工作。我已经检查了很多次 URL,这并不好笑(它返回我想解析的纯文本)。该代码 100% 正常运行,然后它停止工作并开始给我一个 EXC_BAD_ACCESS 错误。
调试输出中没有任何内容可以发布,除了一行说输出切换到进程两次。 (除了有时关于双重释放的事情。)
到目前为止(据我所知)我已经尝试过:
- 重新安装应用程序 - 它仅在“默认”运行时出现问题(不是第一次运行/启动运行。)
- 在浏览器中运行 URL(chrome、firefox、IE...)
- 将调用放入
@try / @catch块中 - 使用
retain - 使用临时
NSAutoreleasePool - 拆分/分离调用的元素(以及登录 Everything - 一旦遇到错误,就不会记录任何内容)
- 将
dataWithContentsOfURL函数与上述一起使用
NSAutoreleasePool *tmpPool = [[NSAutoreleasePool alloc] init];
NSString *url_string = [self getNormalVersionDownloadURL];
NSLog(@"urlString: -%@-", url_string);
NSError *er;
NSURL *the_URL = [[NSURL URLWithString:url_string] retain];
NSString *version_String = [NSString stringWithContentsOfURL:the_URL encoding:NSASCIIStringEncoding error:&er];
NSLog(@"verions_string: -%@-", version_String);
if ([version_String length] < 16)
return;
[tmpPool release];
(NSAutoreleasePool 和 autorelease 由于http://discussions.apple.com/thread.jspa?threadID=1667544 而添加)
【问题讨论】:
-
抱歉给您带来了困惑...自动释放/池是我试图帮助它不崩溃 - 它帮助它正确运行了两次(这就是我将它包含在帖子中的原因)
-
在我们等待的时候,请注意
[tmpPool retain]应该是[tmpPool release]。 -
不错 - 但它永远不会到达那里
-
我已经阅读了缓存的讨论。我无法重现您的问题,我不知道同步 URL 下载的错误,但我同意异步 URL 下载是推荐的方法。
标签: iphone objective-c cocoa file