修复 1.8.2 WXApi 调用:用 Swift 简化后的方法名
Swift 编译器对 ObjC API 自动应用名称简化规则(Swift 3+ SE-0044), 即使是 1.x 老 SDK header 也会被简化。ObjC selector 不变,运行时 仍调 +[WXApi getApiVersion] / +[WXApi sendReq:],但 Swift 端必须 写简化后的名字: - ObjC +(NSString *)getApiVersion → Swift WXApi.getVersion() - ObjC +(BOOL)sendReq:(BaseReq*)req → Swift WXApi.send(_:) 错误信息里 Swift 编译器明确给出:"has been renamed to 'getVersion()'" + "obsoleted in Swift 3"。 注释里同步说明 selector 与 Swift 名映射关系,避免未来维护者误以为 我们调到的是 2.x SDK 的 getVersion(实际仍是 1.8.2 的 getApiVersion)。 Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 4.7
parent
05f1396645
commit
93bbbc3d59
@@ -41,7 +41,9 @@ public final class WeChatManager: NSObject {
|
||||
public func authorize() async throws -> WXAuthCodePayload {
|
||||
print("[WeChat] authorize() 开始")
|
||||
print("[WeChat] - WXApi.isWXAppInstalled = \(WXApi.isWXAppInstalled())")
|
||||
print("[WeChat] - WXApi.getApiVersion = \(WXApi.getApiVersion() ?? "nil")")
|
||||
// ObjC 端 selector 是 +getApiVersion,但 Swift 编译器自动简化为 getVersion()
|
||||
// (Swift 3+ ObjC name 简化规则;运行时仍调 +[WXApi getApiVersion])
|
||||
print("[WeChat] - WXApi.getVersion = \(WXApi.getVersion() ?? "nil")")
|
||||
let state = UUID().uuidString
|
||||
return try await withCheckedThrowingContinuation { cont in
|
||||
authPending[state] = cont
|
||||
@@ -143,7 +145,9 @@ public final class WeChatManager: NSObject {
|
||||
}
|
||||
// 1.x: sendReq BOOL 返回;分享回包通过 SceneDelegate.openURLContexts →
|
||||
// WXApi.handleOpen(url:delegate:WeChatManager.shared) → onResp 路径到达。
|
||||
WXApi.sendReq(req)
|
||||
// ObjC selector +sendReq:,Swift 简化为 send(_:)(去 Req 后缀)。
|
||||
// 运行时仍调 +[WXApi sendReq:]
|
||||
WXApi.send(req)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -168,7 +172,9 @@ public final class WeChatManager: NSObject {
|
||||
case .session: req.scene = Int32(WXSceneSession.rawValue)
|
||||
case .timeline: req.scene = Int32(WXSceneTimeline.rawValue)
|
||||
}
|
||||
WXApi.sendReq(req)
|
||||
// ObjC selector +sendReq:,Swift 简化为 send(_:)(去 Req 后缀)。
|
||||
// 运行时仍调 +[WXApi sendReq:]
|
||||
WXApi.send(req)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user