invalidProductIdentifiers

invalidProductIdentifiers

我正在尝试对我的支付模块进行单元测试,为此,我正在尝试模拟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/

10-08 23:30