调用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
相关产品推荐
相关产品推荐

