从url加载NSImage但只有一些url的工作

时间:2010-04-18 03:15:52

标签: cocoa url google-visualization nsimage

我有一些代码可以从网络上加载图像文件并将其放在图像视图中。问题是它适用于除Google图表之外的所有内容。这令人沮丧,因为我依靠这个来为我的应用程序绘制数据图表。下面是我需要加载的网址:Click to see my test chart。我不知道为什么NSImage似乎拒绝加载它,当它适用于所有elese时。如果你知道为什么或有一个解决办法任何帮助表示赞赏。

以下是我发现的一些示例代码,用于加载图像:

    NSURL *imageURL = [NSURL URLWithString:@"http://chart.apis.google.com/chart?cht=p3&chs=700x400&chd=t:20,20,20,20,20&chl=A|B|C|D|E&chco=66FF33,3333CC"];
NSLog(@"url");
NSData *imageData = [imageURL resourceDataUsingCache:NO];
    NSLog(@"data");
NSImage *imageFromBundle = [[NSImage alloc] initWithData:imageData];

(注意:此代码将加载除图表之外的任何图像)

由于

2 个答案:

答案 0 :(得分:4)

这是失败的,因为|不是URL的有效分类。你必须更换| URL中包含转义码的字符:%7C。以下URL将起作用:

http://chart.apis.google.com/chart?cht=p3&chs=700x400&chd=t:20,20,20,20,20&chl=A%7CB%7CC%7CD%7CE&chco=66FF33,3333CC

答案 1 :(得分:1)

或者只是使用

  

stringByAddingPercentEscapesUsingEncoding:

然后您不必对所有各种转义进行硬编码。 See Description

彼得赞不绝口。