【问题标题】:NSData dataWithContentsOfURLNSData dataWithContentsOfURL
【发布时间】:2011-07-14 20:06:58
【问题描述】:

我有这种按钮单击(下载)的方法。问题是它由于异常而终止:

[会议开始于 2011-03-14 13:06:45 +0530。] 2011-03-14 13:06:45.710 XML[7079:20b] *** 由于未捕获的异常“NSInvalidArgumentException”而终止应用程序, 原因:'*** -[NSCFString isFileURL]:无法识别的选择器发送到实例 0x62b8'
-(IBAction) download
{
    UIImage *image = [UIImage imageWithData: [NSData dataWithContentsOfURL:@"http://ws.cdyne.com/WeatherWS/Images/thunderstorms.gif"]];
    [image release];
}

有什么问题?

【问题讨论】:

  • 为什么要发布图片?你没有分配它。
  • 那是错误的!!!我的网址没有进入 uiimage。 UIImage image = [UIImage imageWithData: [NSData dataWithContentsOfURL:[jsonItem objectForKey:@"PictureURL"]]];错误:*** 由于未捕获的异常“NSInvalidArgumentException”而终止应用程序,原因:“** -[NSCFString isFileURL]:无法识别的选择器已发送到实例 0xd552c0”

标签: iphone uiimage nsdata nsurl


【解决方案1】:

它需要一个 NSURL 作为参数,而不是字符串。

UIImage *image = [UIImage imageWithData: [NSData dataWithContentsOfURL: [NSURL URLWithString:@"http://ws.cdyne.com/WeatherWS/Images/thunderstorms.gif"]]];

编辑:

要测试数据是否已成功加载,请尝试类似

NSError* error = nil;
NSData* data = [NSData dataWithContentsOfURL:yourURL options:NSDataReadingUncached error:&error];
if (error) {
    NSLog(@"%@", [error localizedDescription]);
    [error release];
} else {
    NSLog(@"Data has loaded successfully.");
}

【讨论】:

  • 实际上在我的代码中我从 { NSURL *jsonURL = [NSURL URLWithString:[jsonItem objectForKey:@"PictureURL"]]; } {NSLog(@"%@",[jsonItem objectForKey:@"PictureURL"]);} 也在打印正确的 url 但是当使用代码 { UIImage *image = [UIImage imageWithData: [NSData dataWithContentsOfURL: [NSURL URLWithString:string] ]];} 错误显示(已经解释)
  • 嗯,这没有意义。调用 UIImage *image = [UIImage imageWithData: [NSData dataWithContentsOfURL: [NSURL URLWithString:string]]]; 后得到的确切错误消息是什么?
  • 当我尝试这个时: UIImage image = [UIImage imageWithData: [NSData dataWithContentsOfURL:[jsonItem objectForKey:@"PictureURL"]]];它给出错误:2011-03-14 15:19:42.119 XML[8388:20b] *** 由于未捕获的异常“NSInvalidArgumentException”而终止应用程序,原因:“** -[NSCFString isFileURL]:无法识别的选择器发送到实例 0xd54bc0' 2011-03-14 15:19:42.121 XML[8388:20b] 堆栈:(807902715,)
  • 你需要调用 UIImage image = [UIImage imageWithData: [NSData dataWithContentsOfURL:[NSURL URLWithString:[jsonItem objectForKey:@"PictureURL"]]]];
  • 如果您使用的 iOS 版本小于 4.0,则必须改用 NSUncachedRead。
【解决方案2】:

dataWithContentsOfURL 方法将NSURL 作为参数而不是NSString

[NSData dataWithContentsOfURL:[NSURL URLWithString:@"http://ws.cdyne.com/WeatherWS/Images/thunderstorms.gif"]]

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-11-20
    • 1970-01-01
    • 2010-09-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多