我现在正在处理应用内购买,但即使我找到了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的界面,而不是像这样的表视图?
答案 0 :(得分:1)
的确,SKProduct
productIdentifier
属性为readonly
(source):
产品识别
标识Apple App Store产品的字符串。 (只读)
@property(nonatomic, readonly) NSString *productIdentifier
您应该检查教程并更好地了解SKProduct
对象作为SKProductsResponse
对象的一部分返回的方式。然后你应该找到一种方法将按钮与这些对象相关联。
而且,这是创建应用内购买的好方法吗?我的意思是,只需要获取所有这些代码(来自教程)并将其调整到包含UIButtons的界面,而不是像这样的表视图?
我认为没关系,但你应该:
正确理解教程正在做什么以及为什么;
正确地根据您的情况调整教程。
您当然不需要桌子来列出您的可购买物品。
无论如何,我最好的建议是使用MKStoreKit
,这个框架允许您通过3行代码处理所有应用内购买设备。
答案 1 :(得分:1)
请参阅,
“只读属性的分配” 实际上,`SKProduct productIdentifier属性是只读的,因此您无法对其执行写操作。
关于您的2个问题首先考虑一下您的要求,在您的应用程序中想要做什么,然后根据要求编写代码,如您在问题中所说的那样想要展示TableView
。教程只是让我们了解如何编写新事物或如何改进现有事物。所以你应该在教程中看到他们用来购物的方式。
在我的代码中使用InApp Purchases
之前,我想告诉您我的经验。
我真的感到害怕它,但是阅读Refrence指南,然后开始阅读相同的教程。大大了解InApp Purchase
。所以我想对你说,阅读参考指南,this is about In App Purchases
然后尝试查看InApp
教程,如。