无法从产品标识符中找到SKProduct

时间:2014-07-16 10:50:48

标签: ios objective-c xcode in-app-purchase

我是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"]) 

没有成功!

1 个答案:

答案 0 :(得分:0)

如果您有多个SKProduct,那么遗憾的是这是最快捷的方式。如果您只有一个产品,请使用[response.product objectAtIndex:0]