在应用程序购买,ID产品

时间:2013-05-04 17:38:00

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

我现在正在处理应用内购买,但即使我找到了tutorial,我也有一个问题。在本教程中,“购买”按钮与以下方法相关联:

- (void)buyButtonTapped:(id)sender {

UIButton *buyButton = (UIButton *)sender;
SKProduct *product = _products[buyButton.tag];

NSLog(@"Buying %@...", product.productIdentifier);
[[RageIAPHelper sharedInstance] buyProduct:product];

}

但是在我的应用中,我不想使用一些表格视图来展示产品;我已经用海关图像制作了一些UIButtons。

我尝试了这样的代码:

-(void)BuyPackage1
{
SKProduct * productPackage1;
NSString * productID = @"com.razeware.inapprage.drummerrage";   //ID of the tutorial
productPackage1.productIdentifier = productID;
[[RageIAPHelper sharedInstance] buyProduct:productPackage1];
}

但它给了我:“分配给只读属性”

而且,这是创建应用内购买的好方法吗?我的意思是,只需要获取所有这些代码(来自教程)并将其调整到包含UIButtons的界面,而不是像这样的表视图?

2 个答案:

答案 0 :(得分:1)

的确,SKProduct productIdentifier属性为readonlysource):

  

产品识别

     

标识Apple App Store产品的字符串。 (只读)

 @property(nonatomic, readonly) NSString *productIdentifier

您应该检查教程并更好地了解SKProduct对象作为SKProductsResponse对象的一部分返回的方式。然后你应该找到一种方法将按钮与这些对象相关联。

  

而且,这是创建应用内购买的好方法吗?我的意思是,只需要获取所有这些代码(来自教程)并将其调整到包含UIButtons的界面,而不是像这样的表视图?

我认为没关系,但你应该:

  1. 正确理解教程正在做什么以及为什么;

  2. 正确地根据您的情况调整教程。

  3. 您当然不需要桌子来列出您的可购买物品。

    无论如何,我最好的建议是使用MKStoreKit,这个框架允许您通过3行代码处理所有应用内购买设备。

答案 1 :(得分:1)

请参阅,

“只读属性的分配” 实际上,`SKProduct productIdentifier属性是只读的,因此您无法对其执行写操作。

关于您的2个问题首先考虑一下您的要求,在您的应用程序中想要做什么,然后根据要求编写代码,如您在问题中所说的那样想要展示TableView。教程只是让我们了解如何编写新事物或如何改进现有事物。所以你应该在教程中看到他们用来购物的方式。

在我的代码中使用InApp Purchases之前,我想告诉您我的经验。 我真的感到害怕它,但是阅读Refrence指南,然后开始阅读相同的教程。大大了解InApp Purchase。所以我想对你说,阅读参考指南,this is about In App Purchases 然后尝试查看InApp教程,如。