2010-04-18 45 views
2

我有一些代碼,加載圖像文件離開網絡,並把它放在圖像視圖。問題是它適用於除Google Charts之外的所有內容。這是令人沮喪的,因爲我依靠這個來爲我的應用繪製數據圖表。下面是我需要加載的網址:Click to see my test chart。我不知道爲什麼NSImage似乎拒絕加載這個時,它適用於所有的選擇。如果你知道爲什麼或有解決辦法,任何幫助表示讚賞。從URL加載NSImage,但只有一些url的工作

下面是一些示例代碼,我發現我使用加載圖片:

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]; 

(注:此代碼將加載任何圖像除了圖表)

感謝

+1

請提供一些未能產生預期結果的示例代碼;這將有助於破譯問題的可能性。 – fbrereto 2010-04-18 03:19:09

+0

發佈代碼 – nosedive25 2010-04-18 03:22:07

+0

爲什麼不使用'initWithContentsOfURL:',就像你的其他問題所建議的那樣? http://stackoverflow.com/questions/2660874/nsimage-from-website-url/2660884#2660884 – 2010-04-18 04:00:40

回答

4

這由於|而失敗對於網址來說不是一個有效的字符。您必須替換|您的網址中帶有轉義碼的字符:%7C。以下網址將工作:

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

+7

或者只是使用'stringByAddingPercentEscapesUsingEncoding:'。那麼你不必硬編碼所有的各種逃脫。 http://developer.apple.com/mac/library/documentation/Cocoa/Reference/Foundation/Classes/NSString_Class/Reference/NSString.html#//apple_ref/occ/instm/NSString/stringByAddingPercentEscapesUsingEncoding: – 2010-04-18 04:02:04

+0

Peter Hosey有權利回答這個問題..你應該發表一個答案,以便人們可以給你分數.. – 2010-04-18 04:44:25

1

或者只是使用

stringByAddingPercentEscapesUsingEncoding:

那麼你不必硬編碼的所有各種逃逸。 See Description

Peter值得讚許。