2018-05-24

今天在使用URLWithString拼接NSURL的時候出現(xiàn)了nil:NSURL?*url?=?[NSURL?URLWithString:[NSString?stringWithFormat:@"%@%@?%@",host_url,baseurl,postURL]];??查了一下原因:This method expects URLString to contain any necessary percent escape codes, which are ‘:’, ‘/’, ‘%’, ‘#’, ‘;’, and ‘@’. Note that ‘%’ escapes are translated via UTF-8.大概的意思是說,轉(zhuǎn)義方面的,但并非我這里拼接為nil的原因。不過他給的解決方案缺讓我最終拼接的NSURL不為nil了。。所以以后在使用URLWithString來拼接NSURL盡量這樣用://?這樣用,就不容易出現(xiàn)像上面的問題??NSString?*urlStr?=?[NSString?stringWithFormat:@"%@%@?%@",?host_url,?baseurl,?postURL];??urlStr?=?[urlStr?stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];??NSURL?*url?=?[NSURL?URLWithString:urlStr];??這樣就不容易出現(xiàn)URLWithString拼接NSURL為nil的情況,至少我這里就不會出現(xiàn)了。。問題描述URLWithString:(NSString?)str relativeToURL:(NSURL?)baseURL中baseURL結(jié)尾字段的相關(guān)問題拼接后被去掉的問題,情況如下圖:

其中“v1”拼接后就被去掉了。



解決方法

在baseURL后拼接一個空字符串,即可解決這個問題,如果baseURL本身結(jié)尾帶“/”,則空字符串不產(chǎn)生作用;如果baseURL結(jié)尾沒有“/”,則拼接完成后會在baseURL上加入“/”。

如果這時再執(zhí)行URLWithStringrelativeTOURL:就不會去掉任何字段了

理解

第一種情況baseURL中的URL地址以/結(jié)尾

輸出結(jié)果

第二種情況baseURL中的URL地址不以/結(jié)尾

輸出結(jié)果

從以上的結(jié)果中可以看出:

只要URLWithString中的參數(shù)格式是/xx,即是以/開頭的,那么輸出結(jié)果就是在baseURL中的http://example.com后面直接添加URLWithString中的參數(shù),baseURL中的xx.com后的路徑參數(shù)等全部不需要了。

如果URLWithString中的參數(shù)格式不是以/開頭的,那么就要看baseURL中的路徑是不是以/結(jié)尾,

如果是,那么直接拼接到baseURL路徑后面

如果不是,那么就需要找到baseURL路徑后面倒數(shù)第一個/的位置,插入URLWithString字符串即可,即刪除baseURL后面的v2

如果URLWithString是完整的網(wǎng)址,則直接替換URLWithString

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關(guān)閱讀更多精彩內(nèi)容

  • 一、 安裝Anaconda3 1. 如果當前環(huán)境已安裝python3版本,請在安裝anconda前卸載 請注意:本...
    酸菜牛肉閱讀 312評論 1 0
  • 關(guān)于使用Kotlin開發(fā)Android項目入門介紹 第一次寫簡書內(nèi)心比較激動,作為一個工作才兩年的Android小...
    狂風絕兮閱讀 290評論 0 2
  • 1.HDFS的三個進程 NameNode(NN):名稱節(jié)點,Client第一個操作對象;DataNode(DN):...
    lizhigang閱讀 490評論 0 0
  • 運行: 1.改動的地方 2.改動的地方
    fairy冉冉閱讀 399評論 0 0
  • iOS開發(fā)系列--網(wǎng)絡開發(fā) 概覽 大部分應用程序都或多或少會牽扯到網(wǎng)絡開發(fā),例如說新浪微博、微信等,這些應用本身可...
    lichengjin閱讀 4,024評論 2 7

友情鏈接更多精彩內(nèi)容