objective-cには無名クラスが無い(たぶん)。
なのにだいたいインタフェースがオブザーバー。
その都度処理かえるのがめんどい。
ということでBlocksインタフェースをつけちゃいます。
今日はStoreKit。
目標
課金処理の見通しよくする
使う側をこんな感じに
課金処理で結局何がしたいかというと、
・課金をリクエストして成功したか失敗したか。
・リストアをリクエストして成功したか失敗したか
controller.m
// 購入処理 SLSK* slsk = [SLSK getInstance]; slsk.onFail = ^(NSError* error){ NSLog(@"%@", error.debugDescription); }; slsk.onPurchaseSuccess = ^(NSString* productIdentifier){ NSLog(@"%@ 購入完了", productIdentifier); }; [slsk puchase:@"com.subakolab.tyarintyariiiiiiin" /*productIdentifier*/];
// リストア SLSK* slsk = [SLSK getInstance]; slsk.onFail = ^(NSError* error){ NSLog(@"%@", error.debugDescription); }; // リストア対象のアドオンの数だけ呼ばれる slsk.onRestoreSuccess = ^(NSString* productIdentifier){ NSLog(@"リストアアドオン:%@", productIdentifier); }; // リストアが全部終わったら呼ばれる slsk.onRestoreComplete = ^(){ NSLog(@"リストア完了!"); };