Swift 如何为搜索栏音乐专辑(乐队名称和专辑名称)创建逻辑?

Swift 如何为搜索栏音乐专辑(乐队名称和专辑名称)创建逻辑?,swift,http,uisearchbar,Swift,Http,Uisearchbar,这里有个问题。用户在文本字段中输入艺术家姓名和专辑标题,按下搜索按钮,找到的艺术品将显示在图像视图中。 文本字段中的艺术家姓名和专辑标题可以用以下符号分隔:“-”、“:”、“|”、“\”、“/”、“~” 例如:“女王-波希米亚狂想曲”,“披头士:修道院路”。我还有一个url,在这里我必须输入乐队名称和专辑名称以供请求:theaudiodb.com/api/v1/json/{APIKEY}/searchalbum.php?s={Artist name}&a={album name} 我已经使用函数

这里有个问题。用户在文本字段中输入艺术家姓名和专辑标题,按下搜索按钮,找到的艺术品将显示在图像视图中。 文本字段中的艺术家姓名和专辑标题可以用以下符号分隔:“-”、“:”、“|”、“\”、“/”、“~” 例如:“女王-波希米亚狂想曲”,“披头士:修道院路”。我还有一个url,在这里我必须输入乐队名称和专辑名称以供请求:theaudiodb.com/api/v1/json/{APIKEY}/searchalbum.php?s={Artist name}&a={album name}

我已经使用函数searchBartextdendediting(searchBar:UISearchBar)创建了搜索栏


我想实现搜索栏文本字段逻辑,并为http请求创建正确的url。

您最好使用正则表达式。看看这个答案,谢谢。我会努力的)
func searchBarTextDidEndEditing(_ searchBar: UISearchBar) {
        let text = Array(searchBar.text!)
        var bandName = ""
        var albumName = ""
        var isBandName = true
        var isAlbumName = false
        var albumNameArray = [String]()
        for char in text {
            if char != " " && char != "-" && isBandName && !isAlbumName{
                bandName.append(char)
                continue
            }

            if char != " " && char != "-" && isAlbumName && !isBandName{
                albumName.append(char)
                continue
            }

            if (char == "-" || char == " ") && !isAlbumName && isBandName{
                isBandName = false
                isAlbumName = true
                continue
            }

            if char == " " && isAlbumName && !isBandName && albumName != ""{
                albumNameArray.append(albumName)
                albumName = ""
                continue
            }
            if text.firstIndex(of: char) == text.count - 1 {
                albumNameArray.append(albumName)
            }


        }

        requestToServer(band: bandName, album: albumName)
        print(bandName, albumNameArray)
    }

    func requestToServer(band: String, album: String?) {
        var urlString = "https://theaudiodb.com/api/v1/json/1/searchalbum.php?s=\(band)"
        if let albumName = album {
            urlString += albumName
        }
                if let url = URL(string: urlString) {
                        let task = URLSession.shared.dataTask(with: url) { (data, response, err) in
                            guard let data = data else { return }
                            do {
                                print(String(data: data, encoding: String.Encoding.utf8))
                            }catch let error {
                                print(error)
                            }
                        }
                        task.resume()
                    }
    }