我正在尝试在应用购买中实施storekit。以下硬编码值可以正常工作:
My Globals Struct:
static var productIdentifiers: Set<ProductIdentifier> = ["com.app.myIAP"]
static var store = IAPHelper(productIds: Globals.productIdentifiers)
在我的职能中:
Globals.store = IAPHelper(productIds: productIdentifiers)
但是当我尝试动态创建标识符时,出现错误:
var strIdentifiers = [String]()
for subscription in subscriptions {
strIdentifiers.append(subscription["id"] as! String)
}
let productIdentifiers: Set<ProductIdentifier> = strIdentifiers
Globals.store = IAPHelper(productIds: productIdentifiers)
Globals.store.requestProducts{success, products in
if success {
.......
}
}
我收到此错误:
Cannot assign value of type '[String]' to type 'Set<ProductIdentifier>' (aka 'Set<String>')
非常感谢任何指导
答案 0 :(得分:1)
subscription["id"]
会返回Array
类型的[ProductIdentifier]
。
您无法将数组转换为as! ProductIdentifier
类型。
或者:
将演员表更改为as! [ProductIdentifier]
或
检查您设置subscription["id"]
的位置。也许你不小心设置了一个数组。
我假设后者,作为&#34; id&#34;应该是ProductIdentifier
,而不是数组。
答案 1 :(得分:0)
我不得不操纵Set:
for subscription in subscriptions {
Globals.productIdentifiers.insert(subscription["id"] as! String)
}
Globals.products = []
Globals.store = IAPHelper(productIds: Globals.productIdentifiers)
Globals.store.requestProducts{success, products in
if success {
......
}
}