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
网址看起来很好,所以我不确定发生了什么。这可能是因为网址无法访问模拟器吗?我可以连接到sim's safari上的url以及我的桌面游猎。我该怎么办?
**编辑**
已确定url对象过早发布。在...
中,url被传递给另一个选择器,然后其余的代码在那里发生。我怎么强行保留网址?我已经尝试过了:
__strong NSURL *url = [[NSURL alloc] initWithString:@"http://locationofurlonlocalhost.mp4"];
答案 0 :(得分:1)
这绝对看起来你的网址已经以某种方式发布了。如果您打印url
变量的说明并使用NSURLRequest
,那么您正在查看已释放的内存。
尝试使用alloc / initWithString:作为故障排除步骤。