我已经弄清楚了所有 StoreKit 的工作原理,并实际测试了工作代码……但是,我有一个问题。
我制作了我的“商店”层/场景SKProductsRequestDelegate
。这是正确的做法吗?我得到这样的初始产品信息:
SKProductsRequest *productRequest = [[SKProductsRequest alloc] initWithProductIdentifiers: productIDs];
[productRequest setDelegate: self];
[productRequest start];
问题是,如果我在请求进行时转换到新场景,则 productRequest 会保留当前层。这意味着我的新场景/图层上的触摸由新图层和旧图层处理。
我可以在离开现场时取消 productRequest,但是:
- 我不知道当时它是否正在进行中。
- 我无法释放它,因为请求代表可能会或可能不会释放它。
必须有更好的方法来做到这一点。我可以使委托成为当前层外部的类,但是当调用处理程序时,我不知道如何使用产品信息轻松更新层。