【问题标题】:Getting exception in NSData在 NSData 中获取异常
【发布时间】:2012-06-22 07:16:33
【问题描述】:

我有以下用于从网络获取图像的代码:

 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 则不会发生异常。请给我解决方案。

【问题讨论】:

  • 我猜他指的是NSData *data = [[NSData alloc] initWithContentsOfURL: ImageURL];
  • 请提供正确的网址。图片好像有问题。
  • 也尝试使用NSData *data = [NSData dataWithContentsOfURL:ImageURL];
  • 如果您发布堆栈跟踪信息会有所帮助。
  • 其实这个错误信息挺搞笑的。 :)

标签: iphone objective-c ios


【解决方案1】:

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

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

url=[url stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
NSData *data=[[NSData alloc]initWithContentsOfURL:[NSURL URLWithString:url]];
【解决方案2】:

只要您的图像尺寸较小,请尝试从另一个 SO 问题 mbm30075's answer 中获取此代码段。如果没有,为了UI是交互的,使用异步连接先用NSURLConnection下载图片

【讨论】:

    猜你喜欢
    • 2023-03-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多