gpt4 book ai didi

swift - 无法在 SKProductsResponse 模拟中设置 invalidProductIdentifiers

转载 作者:行者123 更新时间:2023-11-30 10:42:15 27 4
gpt4 key购买 nike

我正在尝试对我的支付模块进行单元测试,为此我正在尝试模拟 SKProductsResponse 及其返回的属性。

我从产品属性开始,效果很好。但是当我尝试使用在运行时中断的 invalidProductIdentifiers 进行相同的操作时...这是代码

首先我尝试扩展类

class ProductsResponse:SKProductsResponse
{
init(products:[SKProduct], invalidProducts:[String])
{
super.init()
self.setValue(products, forKey: "products")
self.setValue(invalidProducts, forKey: "invalidProductIdentifiers")
}
}

然后进行扩展

extension SKProductsResponse
{
convenience init(products:[SKProduct], invalidProducts:[String]) {
self.init()
self.setValue(products, forKey: "products")
self.setValue(invalidProducts, forKey: "invalidProductIdentifiers")
}
}

两者都会导致相同的问题,但仅限于 invalidProductIdentifiers -> 捕获“NSUnknownKeyException”,“[ProductsResponse setValue:forUndefinedKey:]:此类对于键 invalidProductIdentifiers 不符合键值编码。”

您知道为什么要采用这种方法吗?或者有什么替代方法吗?谢谢!

最佳答案

好吧,我仍然不知道发生了什么,但我意识到我可以简单地重写“invalidProductIdentifiers”的 getter,如下所示:

override var invalidProductIdentifiers: [String] {get{ return invalidIds}}
private var invalidIds:[String] = []
init(products:[SKProduct], invalidProducts:[String])
{
super.init()
invalidIds = invalidProducts
}

效果很好。

关于swift - 无法在 SKProductsResponse 模拟中设置 invalidProductIdentifiers,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56549606/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com