From 472cbf6c57c98496366061b8dab902bdb604a962 Mon Sep 17 00:00:00 2001 From: nanhe Date: Thu, 15 May 2025 14:33:37 +0800 Subject: [PATCH] feat: codegen swift --- .github/workflows/test_swift.yml | 8 +- swift/Cartfile | 2 +- swift/Package.swift | 2 +- swift/Sources/TeaUtils/Models.swift | 90 ++++++++++--------- swift/TeaUtils.podspec | 2 +- swift/Tests/TeaUtilsTests/TeaUtilsTests.swift | 22 ++--- 6 files changed, 65 insertions(+), 61 deletions(-) diff --git a/.github/workflows/test_swift.yml b/.github/workflows/test_swift.yml index 9fbc7edc..6ffa11d2 100644 --- a/.github/workflows/test_swift.yml +++ b/.github/workflows/test_swift.yml @@ -15,10 +15,10 @@ jobs: name: Swift ${{ matrix.swift }} on ubuntu-latest strategy: matrix: - # ubuntu swift5.6及以下版本下载会报gpg签名错误,已知bug等官方解决 - swift: ["5.7", "5.8", "5.9", "5.10"] + # ubuntu swift5.7及以下版本下载会报gpg签名错误,已知bug等官方解决 + swift: ["5.8", "5.9", "5.10", "6.1"] fail-fast: false - runs-on: ubuntu-latest + runs-on: ubuntu-22.04 steps: - uses: swift-actions/setup-swift@v2 with: @@ -33,7 +33,7 @@ jobs: name: Swift ${{ matrix.swift }} on macos-latest strategy: matrix: - swift: ["5.9", "5.10"] + swift: ["5.9", "5.10", "6.1"] fail-fast: false runs-on: macos-latest steps: diff --git a/swift/Cartfile b/swift/Cartfile index ba33ebe7..88e7b427 100644 --- a/swift/Cartfile +++ b/swift/Cartfile @@ -1,2 +1,2 @@ github "krzyzanowskim/CryptoSwift" ~> 1.3.0 -github "aliyun/tea-swift" ~> 1.0.2 +github "aliyun/tea-swift" ~> 1.0.3 diff --git a/swift/Package.swift b/swift/Package.swift index 84b2c3c0..c2026b9c 100644 --- a/swift/Package.swift +++ b/swift/Package.swift @@ -16,7 +16,7 @@ let package = Package( ], dependencies: [ .package(url: "https://github.com/krzyzanowskim/CryptoSwift.git", from: "1.5.1"), - .package(url: "https://github.com/aliyun/tea-swift.git", from: "1.0.2"), + .package(url: "https://github.com/aliyun/tea-swift.git", from: "1.0.3"), ], targets: [ .target( diff --git a/swift/Sources/TeaUtils/Models.swift b/swift/Sources/TeaUtils/Models.swift index 2912a43e..338d9b5a 100644 --- a/swift/Sources/TeaUtils/Models.swift +++ b/swift/Sources/TeaUtils/Models.swift @@ -29,12 +29,13 @@ public class ExtendsParameters : Tea.TeaModel { return map } - public override func fromMap(_ dict: [String: Any]) -> Void { - if dict.keys.contains("headers") { - self.headers = dict["headers"] as! [String: String] + public override func fromMap(_ dict: [String: Any?]?) -> Void { + guard let dict else { return } + if let value = dict["headers"] as? [String: String] { + self.headers = value } - if dict.keys.contains("queries") { - self.queries = dict["queries"] as! [String: String] + if let value = dict["queries"] as? [String: String] { + self.queries = value } } } @@ -153,64 +154,65 @@ public class RuntimeOptions : Tea.TeaModel { return map } - public override func fromMap(_ dict: [String: Any]) -> Void { - if dict.keys.contains("autoretry") { - self.autoretry = dict["autoretry"] as! Bool + public override func fromMap(_ dict: [String: Any?]?) -> Void { + guard let dict else { return } + if let value = dict["autoretry"] as? Bool { + self.autoretry = value } - if dict.keys.contains("ignoreSSL") { - self.ignoreSSL = dict["ignoreSSL"] as! Bool + if let value = dict["ignoreSSL"] as? Bool { + self.ignoreSSL = value } - if dict.keys.contains("key") { - self.key = dict["key"] as! String + if let value = dict["key"] as? String { + self.key = value } - if dict.keys.contains("cert") { - self.cert = dict["cert"] as! String + if let value = dict["cert"] as? String { + self.cert = value } - if dict.keys.contains("ca") { - self.ca = dict["ca"] as! String + if let value = dict["ca"] as? String { + self.ca = value } - if dict.keys.contains("max_attempts") { - self.maxAttempts = dict["max_attempts"] as! Int + if let value = dict["max_attempts"] as? Int { + self.maxAttempts = value } - if dict.keys.contains("backoff_policy") { - self.backoffPolicy = dict["backoff_policy"] as! String + if let value = dict["backoff_policy"] as? String { + self.backoffPolicy = value } - if dict.keys.contains("backoff_period") { - self.backoffPeriod = dict["backoff_period"] as! Int + if let value = dict["backoff_period"] as? Int { + self.backoffPeriod = value } - if dict.keys.contains("readTimeout") { - self.readTimeout = dict["readTimeout"] as! Int + if let value = dict["readTimeout"] as? Int { + self.readTimeout = value } - if dict.keys.contains("connectTimeout") { - self.connectTimeout = dict["connectTimeout"] as! Int + if let value = dict["connectTimeout"] as? Int { + self.connectTimeout = value } - if dict.keys.contains("httpProxy") { - self.httpProxy = dict["httpProxy"] as! String + if let value = dict["httpProxy"] as? String { + self.httpProxy = value } - if dict.keys.contains("httpsProxy") { - self.httpsProxy = dict["httpsProxy"] as! String + if let value = dict["httpsProxy"] as? String { + self.httpsProxy = value } - if dict.keys.contains("noProxy") { - self.noProxy = dict["noProxy"] as! String + if let value = dict["noProxy"] as? String { + self.noProxy = value } - if dict.keys.contains("maxIdleConns") { - self.maxIdleConns = dict["maxIdleConns"] as! Int + if let value = dict["maxIdleConns"] as? Int { + self.maxIdleConns = value } - if dict.keys.contains("localAddr") { - self.localAddr = dict["localAddr"] as! String + if let value = dict["localAddr"] as? String { + self.localAddr = value } - if dict.keys.contains("socks5Proxy") { - self.socks5Proxy = dict["socks5Proxy"] as! String + if let value = dict["socks5Proxy"] as? String { + self.socks5Proxy = value } - if dict.keys.contains("socks5NetWork") { - self.socks5NetWork = dict["socks5NetWork"] as! String + if let value = dict["socks5NetWork"] as? String { + self.socks5NetWork = value } - if dict.keys.contains("keepAlive") { - self.keepAlive = dict["keepAlive"] as! Bool + if let value = dict["keepAlive"] as? Bool { + self.keepAlive = value } - if dict.keys.contains("extendsParameters") { + if let value = dict["extendsParameters"] as? [String: Any?] { var model = ExtendsParameters() - model.fromMap(dict["extendsParameters"] as! [String: Any]) + model.fromMap(value) self.extendsParameters = model } } diff --git a/swift/TeaUtils.podspec b/swift/TeaUtils.podspec index 71ca1864..687c5b88 100644 --- a/swift/TeaUtils.podspec +++ b/swift/TeaUtils.podspec @@ -18,7 +18,7 @@ Pod::Spec.new do |spec| spec.tvos.deployment_target = '13.0' spec.dependency 'CryptoSwift', '~> 1.5.1' - spec.dependency 'Tea', '~> 1.0.2' + spec.dependency 'Tea', '~> 1.0.3' spec.swift_version = '5.6' end diff --git a/swift/Tests/TeaUtilsTests/TeaUtilsTests.swift b/swift/Tests/TeaUtilsTests/TeaUtilsTests.swift index e076b3a7..0c64827e 100644 --- a/swift/Tests/TeaUtilsTests/TeaUtilsTests.swift +++ b/swift/Tests/TeaUtilsTests/TeaUtilsTests.swift @@ -30,12 +30,13 @@ class TestModel: TeaModel { return map } - public override func fromMap(_ dict: [String: Any]) -> Void { - if dict.keys.contains("num") { - self.num = dict["num"] as! Int + public override func fromMap(_ dict: [String: Any?]?) -> Void { + guard let dict else { return } + if let value = dict["num"] as? Int { + self.num = value } - if dict.keys.contains("str") { - self.str = dict["str"] as! String + if let value = dict["str"] as? String { + self.str = value } } } @@ -67,12 +68,13 @@ class TestModel2: TeaModel { return map } - public override func fromMap(_ dict: [String: Any]) -> Void { - if dict.keys.contains("num") { - self.num = dict["num"] as! Int + public override func fromMap(_ dict: [String: Any?]?) -> Void { + guard let dict else { return } + if let value = dict["num"] as? Int { + self.num = value } - if dict.keys.contains("str") { - self.str = dict["str"] as! String + if let value = dict["str"] as? String { + self.str = value } } }