2011-04-06 115 views
2

我嘗試以下線的iOS應用程序,並在基礎工具:stringByAppendingPathComponent中的基礎錯誤?

[@"http://www.apple.com/" stringByAppendingPathComponent:@"/"] 

每次的結果我得到的是:

@"http:/www.apple.com" 

換句話說,stringByAppendingPathComponent,除了不追加任何東西(我預期的),吞下最後的/(可以認爲是OK,排序),嚥下一個URL模式/,這完全是不是確定在我的書中。

這是隻發生在我身上嗎?在提交錯誤報告之前,我錯過了一些愚蠢的事情嗎?

回答

3

首先,請注意文檔stringByAppendingPathComponent:

注意,此方法只與文件路徑(不,例如,字符串的URL的表示)的作品。

因此,您正在使用該方法,它並不意味着支持。

與文件路徑使用它顯示了相同的行爲,但:

[@"/abc/" stringByAppendingPathComponent:@"/"];  // -> @"/abc" 
[@"/abc/" stringByAppendingPathComponent:@"/def/"]; // -> @"/abc/def" 

所以這種方法似乎總是喜歡那些不以斜槓,不管最終是否斜槓是部分路徑原始路徑或參數。不過,我不知道我是否會說這個錯誤。畢竟,/abc/abc/在文件系統上指定了相同的項目,不是嗎?

但它確實聽起來像確切的行爲可以更好地記錄。

+0

arf,我沒有看到文檔中的註釋。好吧不是一個錯誤。我的錯。謝謝。 – 2011-04-06 15:27:09

+0

這也失敗了:'[[NSURL URLWithString:@「http://www.apple.com」] URLByAppendingPathComponent:@「/」]'。它返回'http://www.apple.com ///'。 'URLWithString:relativeToURL:'似乎工作正常,但。 – 2011-04-06 15:43:07