2013-02-07 74 views
1

我簡單地「paymentWithProductIdentifier」已過時

SKPayment *payment = [SKPayment paymentWithProductIdentifier:@"ident"]; 

問題的問題是,paymentWithProductIdentifier已被棄用。 我,我可以使用

paymentWithProduct 

在互聯網上找到,但問題是,我不知道怎麼去SKProduct。

我寫了這樣的事情:

SKProductsResponse *response; 
SKProduct *validProduct = [response.products objectAtIndex:0]; 
SKPayment *payment = [SKPayment paymentWithProduct:validProduct]; 

但它不工作。 問題在哪裏?

在此先感謝。

回答

2

您的代碼使用*響應而不初始化它 - 這是直接的問題。

但是,更大的問題是獲取SKProduct對象。這裏的基本方法是,在向用戶呈現購買項目之前,您需要向App Store發出請求以檢索您可能想要顯示給用戶的SKProduct對象。每個SKProduct包含您需要呈現給用戶的本地化價格和描述信息。我構建我的代碼以檢索購買屏幕上的產品陣列。根據您的應用程序,您可能需要提前調用它。

您從可能購買物品列表的skus開始。然後使用該skus集合(SKProductsRequest initWithProductIdentifiers :)創建一個SKProductsRequest對象。另外,提供一個SKProductsRequestDelegate來接收響應。然後開始請求。使用didReceiveResponse:調用委託時,可以將數組保存在包含SKProduct對象的響應中。它還會返回無法呈現給用戶的無效產品列表。只顯示您在回調中收到SKProduct對象的項目。

當實際開始付款時,您從傳遞到SKProductsRequestDelegate didReceiveResponse:方法的數組中提取正確的SKProduct對象來創建付款對象。

+0

那麼,我在那裏的一切。我只是在有問題的地方展示了代碼。 – Ganjira

+0

如果你有這一切,那麼爲什麼你使用paymentWithProductIdentifier:而不是paymentWithProduct:? – DrC