如果我们设置标题“Content-Length”,NSHTTPURLResponse的initWithURL方法崩溃

时间:2012-07-04 07:33:48

标签: objective-c ios header crash nshttpurlresponse

以下是一些代码,我们设置NSHTTPURLResponse对象:

NSString * data = @"response successful";
NSUInteger length = [data length];
NSDictionary * headersDict = [NSDictionary dictionaryWithObjectsAndKeys:[NSNumber numberWithUnsignedInt:length], @"Content-Length", nil];

NSHTTPURLResponse * response = [[NSHTTPURLResponse alloc] initWithURL:[request URL] statusCode:200 HTTPVersion:@"1.1" headerFields:headersDict];

如果我们将headersDict作为参数,则以下代码将在最后一行崩溃。

  

错误:testReportAppOpenToAdMobWithAppstoreId(AdTrackerTests)失败: - [__ NSCFNumber length]:无法识别的选择器发送到实例0xf653f40

我不知道为什么会崩溃。调试显示headersDict是好的,我怀疑Apple有一个错误。

有什么想法吗?

1 个答案:

答案 0 :(得分:4)

NSHTTPURLResponse可能需要NSString,而不是NSNumber。尝试将length值转换为NSString