私はアプリの購入を構築し、それは正常に動作します。
私は新しい目的のCクラスを作成し、新しいクラスのアプリ購入のためのすべてのコーディングを入れます。
今、メインビューコントローラからアプリ内購入を呼びたいと思っています。どのように可能ですか?おかげInApp購入他のnsobjectから
viewcontroller.m
- (void)viewDidLoad
{
InAppPurchaseManager *IAPmanager = [[InAppPurchaseManager alloc]init];
if([SKPaymentQueue canMakePayments])
{
//sets payment observer to class.
[[SKPaymentQueue defaultQueue] addTransactionObserver:self];
//initializes products array.
products = [[NSMutableArray alloc]init];
[IAPmanager loadStore];
}
else
{
NSLog(@"failed");
}
}
InAppPurchaseManager.m
-(void)loadStore
{
//restarts any purchases if they were interupted last time the was open
[[SKPaymentQueue defaultQueue]addTransactionObserver:self];
//get the product description
ViewController *viewcontroller = [[ViewController alloc]init];
[viewcontroller requestProductData];
}
//request product
-(void)requestProductData
{
NSSet *productIdentifiers = [NSSet setWithObjects:@"com.company.myApp.App1",nil ];
SKProductsRequest *productsRequest = [[SKProductsRequest alloc] initWithProductIdentifiers:productIdentifiers];
productsRequest.delegate = self;
[productsRequest start];
NSLog(@"product request start");
}
は、それがこの
- (void)productsRequest:(SKProductsRequest *)request didReceiveResponse:(SKProductsResponse *)response
{
myproducts = response.products;
for(proUpgradeProduct in myproducts)
{
//debug log.
NSLog(@"Product title: %@" , proUpgradeProduct.localizedTitle);
NSLog(@"Product description: %@" , proUpgradeProduct.localizedDescription);
NSLog(@"Product price: %@" , proUpgradeProduct.price);
NSLog(@"Product id: %@" , proUpgradeProduct.productIdentifier);
}
// invalid purchase
for (NSString *invalidProductId in response.invalidProductIdentifiers)
{
NSLog(@"Invalid product id: %@" , invalidProductId);
}
[[NSNotificationCenter defaultCenter] postNotificationName:kInAppPurchaseManagerProductsFetchedNotification object:self userInfo:nil];
NSLog(@"receive respond");
}
それはのような責任が何かストアキットに来たとき、私は、要求の製品データのように、手動ですべてのメソッドを呼び出し、それがgreat.but動作するようにしようとしなかった - (無効)productsRequest:(SKProductsRequest *)要求didReceiveResponse:(SKProductsResponse *)レスポンス、リクエスト製品の開始後にはそれ自体は決して呼び出されません – Albert