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

调用RNPayPassConnect.canAddPass报错:实例成员无法用于类型

问题解决:Instance member 'canAddPass' cannot be used on type 'RNPayPassConnect'

报错原因

你定义的canAddPass是实例方法,必须先创建RNPayPassConnect类的实例才能调用,但你直接通过类名RNPayPassConnect调用该方法,违反了Swift的语法规则。

两种解决方案

方案1:创建类实例后调用方法

修改detailPage代码,先实例化RNPayPassConnect,再调用canAddPass:

struct detailPage: View {
    var body: some View {
         VStack() {
              let payPassInstance = RNPayPassConnect()
              let returnedValue = payPassInstance.canAddPass("Text")
              if returnedValue {
                 ProgressView()
              }
         }
    }
}

方案2:将方法改为类方法

如果canAddPass不需要依赖RNPayPassConnect的实例属性(当前方法内未使用addPassViewController),可以把它改成类方法,这样就能直接通过类名调用:
修改RNPayPassConnect代码:

@objc(RNPayPassConnect)
class RNPayPassConnect: NSObject {
  let addPassViewController = PKAddPassViewController()
  
  @objc class func canAddPass(_ someValue : String) -> Bool {
    let result = PKAddPaymentPassViewController.canAddPaymentPass()
    return result
  }
}

修改后,你原本detailPage里的调用代码即可正常运行。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 17:36:30