從URLString中截取參數(shù)

在iOS開發(fā)中我們經(jīng)常需要獲取URLString中的參數(shù)值。

以下方法利用URLComponents實(shí)現(xiàn):

extension String {
    
    /// 從 URLString 中截取參數(shù)
    var urlParameters: [AnyHashable: Any]? {
        
        /// 解析url
        guard let urlComponents = URLComponents(string: self), let queryItems = urlComponents.queryItems else {
            return nil
        }
        
        var parameters: [AnyHashable: Any] = [:]
        
        /// 遍歷queryItems獲取每一項(xiàng)參數(shù)的鍵值對(duì)
        queryItems.forEach { (item) in
            
            /// 判斷是否有相同的key
            if let existValue = parameters[item.name], let value = item.value {
                
                /// 將相同key的值存入數(shù)組中
                if var existValue = existValue as? [Any] {
                    existValue.append(value)
                    parameters[item.name] = existValue
                } else {
                    parameters[item.name] = [existValue, value]
                }
                
            } else {
                parameters[item.name] = item.value
            }
        }
        
        /// 返回解析后的參數(shù)字典
        return parameters
    }
}

Demo下載地址:LPURLParse

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

推薦閱讀更多精彩內(nèi)容

  • Android 自定義View的各種姿勢(shì)1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 173,462評(píng)論 25 708
  • 發(fā)現(xiàn) 關(guān)注 消息 iOS 第三方庫、插件、知名博客總結(jié) 作者大灰狼的小綿羊哥哥關(guān)注 2017.06.26 09:4...
    肇東周閱讀 12,251評(píng)論 4 61
  • 【05期分身術(shù)訓(xùn)練營(yíng)】第3天 信念,堅(jiān)定的相信事物就是這個(gè)樣子。 在我們的生活中,每一個(gè)人,都有很多的信念。比如說...
    泓澄閱讀 328評(píng)論 5 1
  • 今天,臨摹一只小萌鼠。 老鼠雖小,但它是十二屬相之首。萌萌噠,很可愛。 呆萌的線稿。 小嘴,小鼻子,小尾巴都是粉色...
    陌上花開一水間閱讀 943評(píng)論 0 1
  • 下周日晚八點(diǎn),《明星大偵探》之《請(qǐng)回答1998》是一場(chǎng)年代大戲,所有人將穿越到1998年,那里會(huì)有怎樣的故事等著大...
    6b0300371121閱讀 1,066評(píng)論 0 0