2010-08-04 57 views
2

所以我試圖從一個來自URL的XML流中檢索數據。該URL在用戶輸入的搜索字符串上配置。有沒有什麼理由爲什麼這個代碼不應該工作?NSString和NSUrl沒有正確轉換

NSString *searchString = "Geoff"; 

NSString *updatedURL = [NSString stringWithFormat:@"http://mysearchpage.com/searchQuery=%@", searchString]; 

NSLog(updatedURL); 
NSURL *url = [[NSURL alloc] initWithString:updatedURL]; 

現在這對單個單詞搜索很好,但只要我嘗試搜索像名和姓一樣的搜索,URL每次都會返回nil。有沒有可能導致該字符串的行爲?

我甚至試圖在搜索字符串被追加時用「%20」替換「」,看看是否是問題所在。我這樣做使用:

NSURL *url = [[NSURL alloc] initWithString:[updatedURL stringByReplacingOccurrencesOfString:@" " withString:@"%%20"]]; 

任何想法?提前致謝!

+0

我打算假設失蹤的「不是你的問題,所以我加了它。 – 2010-08-04 18:26:58

回答

11

您應該使用NSString的-stringByAddingPercentEscapesUsingEncoding:方法爲:

NSURL *url = [[NSURL alloc] initWithString: 
    [updatedURL stringByAddingPercentEscapesUsingEncoding: NSUTF8StringEncoding]]; 
+0

這樣做的竅門。感謝您的快速回復! – gabaum10 2010-08-04 18:34:30

0

如果這確實是你的代碼的拷貝粘貼&,這可能是因爲searchString缺少@ -sign。這應該是NSString *searchString = @"Geoff";

+0

不,它不是複製和粘貼,我簡化了URL,以便更容易理解。我意識到缺少一堆東西。 – gabaum10 2010-08-04 18:32:04