2011-07-19 66 views
0

我會盡量快速,我仍然很新,但我通常可以計算出東西,這個問題讓我發瘋。我有一個網站的XML,解析它插入一個表格,單擊該項目,加載鏈接到網頁視圖,並啓動問題...NSURL返回null,stringByAddingPercent ...返回一個噩夢

-(void)viewDidLoad { 
NSString *str = [NSString stringWithFormat:@"%@", [item objectForKey:@"link"]]; 
NSURL *url = [NSURL URLWithString = str]; 
NSURLRequest *request = [NSURLRequest requestWithURL:url]; 
[webView loadRequest = request]; 
} 

如果您的NSLog *海峽,這是很好的。如果你的NSLog URL,它是空的。這個問題顯然是使用objectForKey,因爲否則一切正常。現在,如果我

NSURL *url = [NSURL URLWithString = [str stringByAddingPercentEscapesUsingEncoding:... 

添加任何NSUTF或NSASCII中,對NSLog的URL添加

%0A%20%20%20%20%20%20%20%20%0A%20%20%0A%20%20 

來結束我的價值的結束。因此,如果值aq1sw2de3,該的NSLog將

aq1sw2de3%0A%20%20 etc. 

我剛剛從在MAC看着屏幕輸入這件事,承擔所有拼寫錯誤並不在代碼中存在。我嘗試了很多不同的方式將這個URL傳遞給webView,但是我的結果要麼是NULL,要麼是所有該死的亂碼。我浪費時間做我不能做的事情嗎?我是否以錯誤的方式去做?我一直在尋找幾個小時,我看到的所有問題都是由於它們傳遞的字符串或url的格式(空格和|導致錯誤),但我的鏈接值只是A到Z和0到9,就是這樣。

回答

1

「%20」和「%0A」分別是空格和製表符的百分號轉義序列。檢查你的字符串是否在結尾處有一些額外的空白。

+0

男人打了我的腦海,我檢查了兩次檢查,以確保沒有額外的間距。但至少我現在有一些東西要離開,謝謝一堆。我會讓你知道發生了什麼。 – DanBroChill

+0

這似乎是,謝謝噸斯科特 – DanBroChill

0

斯科特的權利。查看NSCharacterSet以獲取可用於修剪字符串的一組常量空白字符。您可以使用NSString調用stringByTrimmingCharactersInSet和設置爲刪除不需要的字符的空白字符。

+0

是的,我現在要去看看,謝謝老闆:) – DanBroChill

1

不知何故,你的字符串正在撿起一些額外的空白。如果您只是需要修剪它,請嘗試:

NSURL *url = [NSURL URLWithString: 
      [[str stringByAddingPercentEscapesUsingEncoding: NSUTF8Encoding]   
      stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]]]; 
+0

我會盡力,或至少記住,但問題顯然來自我所做的XML,所以我需要解決這個問題。 – DanBroChill