在NSData中获取异常

时间:2012-06-20 07:23:18

标签: iphone objective-c ios

我正在使用以下代码从网络上获取图片:

 NSURL *ImageURL = [NSURL URLWithString:@"http://url/image.jpg"];

 NSData *data = [[NSData alloc] initWithContentsOfURL: ImageURL];

我遇到以下异常:

 *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '*** -[__NSPlaceholderDictionary initWithCapacity:]: capacity (4294967295) is ridiculous'

如果我删除第二行nsdata,则不会发生异常。请给我解决方案。

2 个答案:

答案 0 :(得分:0)

您的网址路径可能有空格。所以像这样使用

NSString *url=@"http://url/image.jpg";

url=[url stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
NSData *data=[[NSData alloc]initWithContentsOfURL:[NSURL URLWithString:url]];

答案 1 :(得分:0)

只要您的图片尺寸很小,请尝试另一个问题mbm30075's answer中的此代码片段。如果没有,为了使UI成为交互式,请使用异步连接首先使用NSURLConnection

下载图像