根据 Swift 中的用户输入将空格转换为 +

Transform whitespace to + as a result of user input in Swift

我的 GitHub Repo Search 应用快要完成了。如果用户的输入包含空格,我需要将其更改为 +(就像 GitHub 的原始浏览器在将输入更改为 URL 的部分时所做的那样)。

如何操作?

代码比较复杂,依赖比较多,分散在几个文件中,如果可以的话我不想把所有的段落都复制过来。

在前端,输入是这样处理的:

 TextField("Enter search", text: $viewModel.query)

其中 viewModel 是一个变量,表示具有允许屏幕根据查询更改的功能的结构。

查询本身是该结构中的已发布变量 (Content View Model: Observable Object)

@Published var query = ""

如果您需要更多信息,请在评论中告诉我。我可以像我说的那样复制整个段落,但我不知道这是否会进一步复杂化对案例的理解;P

好吧,@jnpdx 和@LeoDabus 是对的,对我来说最简单的方法就是转换字符串。

我正在发布我在其中进行转换的段落(它在该行中有指向评论):

import Foundation
import Combine

(...)
    
private func createRequest(with query: String) -> AnyPublisher<[Item], Error> {
            let fixedQuery = query.replacingOccurrences(of: " ", with: "+") //the transformation command
            guard let url = URL(string: "https://api.github.com/search/repositories?q=\(fixedQuery)&per_page=20"), !query.isEmpty else {
                return Just<[Item]>([])
                    .setFailureType(to: Error.self)
                    .eraseToAnyPublisher()
            }

我还在找到的更详细的答案中添加了一个 URL: Any way to replace characters on Swift String?