[iOS] Query Parameter

Seonhu Kim·2023년 5월 28일
0

iOS

목록 보기
16/16
post-thumbnail

앞선 글에서 URL Scheme을 통해 서로 다른 앱을 실행시키는 방법을 정리했다.

URL Scheme은 앱을 실행시키는 것 뿐만 아니라 뒤에 붙어있는 Query Parameter를 통해 데이터를 전달하여 서버에 보내거나 이후 앱에서 실행할 동작을 처리할 수 있다.

Query Parameter는 URL에서 물음표(?)부터 시작한다. 이후에는 등호(=)를 통해 key = value 형식으로 파라미터를 추가하며, 여러 개의 파라미터가 있다면 앰퍼샌드(&)로 구분되어진다.

아래의 코드는 URLComponents 메서드를 통해 쿼리 아이템을 딕셔너리에 담고, key = value로 형태로 값을 저장하는 extractQueryParameters 커스텀 메서드를 작성했다.

func extractQueryParameters(from url: URL) -> [String: String]? {
    guard let components = URLComponents(url: url, resolvingAgainstBaseURL: false),
          let queryItems = components.queryItems else {
        return nil
    }
    
    var parameters = [String: String]()
    for queryItem in queryItems {
        if let name = queryItem.name, let value = queryItem.value {
            parameters[name] = value
        }
    }
    
    return parameters
}

if let url = URL(string: "https://example.com/path?param1=value1&param2=value2") {
    if let parameters = extractQueryParameters(from: url) {
        for (name, value) in parameters {
            print("\(name): \(value)")
        }
    }
}
profile
iOS Developer.

0개의 댓글