2011-06-23 91 views
21

遇到了麻煩的NSString轉換爲NSURL,item.image,持有該即時通訊通過XML的NSString NSURL

NSString *urlString = [NSString stringWithFormat:@"%@", item.image]; 
NSURL *url = [NSURL URLWithString:urlString]; 

NSLog(@"string> %@ ", urlString); 
NSLog(@"url> %@ ", url); 

2011-06-23 11:18:49.610 Test[10126:207] string> http://www.harlemfur.com/images/Dog_Olive.jpg  
2011-06-23 11:18:49.611 Test[10126:207] url> (null) 

也越來越圖像的URL,如果我嘗試:

NSString *urlString = [NSString stringWithFormat:@"%@", item.image]; 
NSURL *url = [NSURL fileURLWithPath :urlString]; 

2011-06-23 11:22:08.063 Test[10199:207] string> http://www.harlemfur.com/images/Dog_Olive.jpg 

2011-06-23 11:22:08.064 Test[10199:207] url> %0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20http://www.harlemfur.com/images/Dog_Olive.jpg%0A%20%20%20%20%20%20%20%20%20%20%20%20 --/
+0

無法重現。該問題必須與item.image。它究竟是什麼類型? – Eiko

+0

這些行是否就像這樣出現在你的代碼中?直接一個接一個(構建和記錄)? – Eiko

回答

74

當從製造,別忘了先對其進行編碼,所以試試這個:

NSString *urlString = [NSString stringWithFormat:@"%@", item.image]; 
NSURL *url = [NSURL URLWithString:[urlString stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]]; 
+0

謝謝,但這是打印出即時獲得:2011-06-23 11:41:34.796測試[10609:207]字符串> http://www.harlemfur.com/images/Dog_Olive.jpg 2011-06 -23 11:41:34.797測試[10609:207] url>%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20http: //www.harlemfur.com/images/Dog_Olive.jpg%0A%20%20%20%20%20%20%20%20%20%20%20%20 – user616860

+0

然後你應該檢查你的item.image,make確定沒有隱藏的角色。簽出NSString文檔以查看如何修剪字符串。 – cxa

+0

你是對的,我有我的xml額外的空間,感謝的傢伙,作品像一個魅力 – user616860

2

所有是確定的,如果你想獲得的URL中的NSLog打印使用:

NSLog(@"url> %@ ", [url absoluteString]); 
+2

你*可以*直接在Objective-C中打印對象。它調用'description'方法。適用於NSURL。 – Eiko

1

item.image不僅包含URL,但它有一個換行符和空格開始。先刪除那些,你應該沒問題。

0

在斯威夫特:

NSURL(fileURLWithPath: item.image!)