You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

iOS集成Stripe时Xcode报Cannot find 'pay' in scope错误如何解决

错误原因

你在setupPayButton方法中为按钮绑定点击事件时,通过#selector(pay)指定了触发名为pay的方法,但你的ViewController类中并未实现该方法,编译器无法找到对应方法的定义,因此抛出该错误。

解决方案

在ViewController类的作用域内添加带@objc修饰的pay方法即可,Swift中通过#selector调用的方法必须添加@objc前缀以暴露给Objective-C运行时。

你可以参考以下基础实现模板,根据自身的Stripe支付逻辑调整内部代码:

@objc func pay() {
    // 校验卡片输入有效性
    guard let cardParams = paymentTextField.cardParams else {
        diplayStatus("请输入有效的银行卡信息")
        return
    }
    startLoading()
    // 调用Stripe接口创建支付方式
    STPAPIClient.shared.createPaymentMethod(with: cardParams) { [weak self] paymentMethod, error in
        guard let self = self else { return }
        self.stopLoading()
        if let error = error {
            self.diplayStatus("支付方式创建失败:\(error.localizedDescription)")
            return
        }
        guard let paymentMethod = paymentMethod else {
            self.diplayStatus("获取支付信息失败,请重试")
            return
        }
        // 此处添加调用自有后端接口完成支付的逻辑
        self.diplayStatus("支付方式创建成功,ID:\(paymentMethod.stripeId)")
    }
}

将上述代码添加到你的ViewController类中(比如放在diplayStatus方法之后即可),错误就会消失。

内容的提问来源于stack exchange,提问作者askit

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.24 01:24:00