我是IOS编程的新手,来自C#背景,所以请耐心等待!
作为我尝试将IAP添加到我正在处理的应用程序的一部分,我必须遍历SKProductsResponse中返回的产品,以查找我的客户选择的产品(因为不推荐使用paymentWithProductIdentifier)。
在下面的代码中我知道我的NSDictionary中的productSKU肯定匹配其中一个产品标识符(至少,在控制台中执行po表示它是相同的......)但是if语句永远不会运行。我做错了什么?我已经尝试将双方都投射到NSString但没有成功。另外,有没有更好的方法从SKProductsResponse中的productidentifier中找到产品而不是循环?
SKProduct *product;
for (SKProduct *thisProduct in products) {
if (thisProduct.productIdentifier == payload[@"productSKU"]) {
product = thisProduct;
}
}
由于
克里斯
编辑:
好的,所以我发现如果我更换
if (thisProduct.productIdentifier == payload[@"productSKU"])
与
if ([thisProduct.productIdentifier isEqualToString:payload[@"productSKU"]])
它有效。有谁能解释为什么?我认为这是某种铸造问题,但我已经尝试了
if ((NSString *)thisProduct.productIdentifier == (NSString *)payload[@"productSKU"])
没有成功!
答案 0 :(得分:0)
如果您有多个SKProduct,那么遗憾的是这是最快捷的方式。如果您只有一个产品,请使用[response.product objectAtIndex:0]