Swift3 Storekit - 将字符串数组转换为Set
问题描述:
我试图在应用程序购买中实现storekit。下面的硬编码值工作得很好:Swift3 Storekit - 将字符串数组转换为Set <ProductIdentifier>
我的全局结构:
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>')
任何指导将不胜感激
答
subscription["id"]
返回[ProductIdentifier]
类型的Array
。
您不能将阵列转换为as! ProductIdentifier
类型。
或者:
更改强制转换为as! [ProductIdentifier]
或
检查要设置subscription["id"]
的地方。也许你不小心设置了一个数组。
我认为以后,作为一个“ID”应该可能是ProductIdentifier
,而不是一个数组。
答
我不得不操纵一组:
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 {
......
}
}
+0
而不是回答你自己的问题,更喜欢更新问题。 – shallowThought
如何定义'subscriptions'? –
let subscriptions = pages [“subscriptions”] as! [NSDictionary] – oppositemind