1
NSURL *url = [NSURL URLWithString:@"http://locationofurlonlocalhost.mp4"];

...

NSMutableURLRequest *req;
req = [NSMutableURLRequest requestWithURL:url // <-- CRASH IS HERE!! thx to a breakpoint stepthrough
          cachePolicy:NSURLRequestUseProtocolCachePolicy
          timeoutInterval:30.0];

url 的日志将导致:

Printing description of url:
<NSURLRequest http://locationofurlonlocalhost.mp4>

崩溃将记录

-[NSURLRequest absoluteURL]: unrecognized selector sent to instance 0x88003e0

URL 看起来很好,所以我不确定发生了什么。这可能是因为模拟器无法访问 url 吗?我可以连接到 sim 的 safari 以及我的桌面 safari 上的 url。我该怎么办?

** 编辑 **

已确定 url 对象发布得太早。在...url 被传递给不同的选择器,然后其余的代码发生在那里。如何强制保留网址?我已经尝试过:

__strong NSURL *url = [[NSURL alloc] initWithString:@"http://locationofurlonlocalhost.mp4"];
4

1 回答 1

1

这绝对看起来像您的网址已以某种方式发布。如果您打印url变量的描述并以 结束NSURLRequest,那么您正在查看释放的内存。

尝试使用 alloc / initWithString: 作为故障排除步骤。

于 2012-04-22T19:28:41.340 回答