使用应用内购买限制核心数据应用程序的条目数
Limit the number of entries to a core data application with the use of in app purchases
我在 App Store 中有一个应用程序目前向用户收费,用户可以在其中创建不限数量的条目以跟踪小额交易。
我想将模型更改为免费使用,但有限制,应用内购买解锁无限量的条目。这将使用户能够试用该应用程序。这是一个 iOS 8 和 iOS 7 iPhone 应用程序。
请原谅我对 IAP 方面的无知以及这方面的数据限制。
我通过以下示例获得了适用于 IAP 的代码:http://www.tutorialspoint.com/ios/ios_in_app_purchase.htm。我看到了 IAP 的 iTunes Connect 条目并通过测试帐户,它允许我购买,但它实际上并没有解锁任何东西(如前所述,这是我第一次进入 IAP)。
考虑到这一点,我很抱歉提出这个基本问题,但是是否有任何指南可用于限制应用程序核心数据方面允许的条目数量,以便稍后解锁IAP 的数量有限?
理想情况下,我想要两个 IAP:1) 价格一解锁 250 个条目,以及 2) 价格二解锁无限条目。
所以,我的主要问题是:
如何将我的应用程序中的条目数限制为 x 数量,然后在 IAP 通过时增加到无限?
任何关于这方面的指导将不胜感激。
据我所知,没有内置的方式告诉 Core Data:"don't create more than 250 instances of this entity"。
但是,在用户开始创建条目之前,您可以检查已经创建了多少条目。您可以使用 NSFetchRequest
来做到这一点。假设您的核心数据实体名为 Entry
:
NSError *error = nil;
NSFetchRequest *request = [NSFetchRequest fetchRequestWithEntityName:@"Entry"];
NSManagedObjectContext *context = ... // get the context somehow
NSUInteger currentCount = [context countForFetchRequest:request error:error];
NSUInteger entriesLimit = 250; //or whatever you want
BOOL isPurchaseActive = ...// check whether an appropriate in-app purchase is active
if(currentCount >= entriesLimit && !isPurchaseActive) {
//Notify the user: sorry, you have reached the limit of entries. Wanna buy more?
}
我在 App Store 中有一个应用程序目前向用户收费,用户可以在其中创建不限数量的条目以跟踪小额交易。
我想将模型更改为免费使用,但有限制,应用内购买解锁无限量的条目。这将使用户能够试用该应用程序。这是一个 iOS 8 和 iOS 7 iPhone 应用程序。
请原谅我对 IAP 方面的无知以及这方面的数据限制。
我通过以下示例获得了适用于 IAP 的代码:http://www.tutorialspoint.com/ios/ios_in_app_purchase.htm。我看到了 IAP 的 iTunes Connect 条目并通过测试帐户,它允许我购买,但它实际上并没有解锁任何东西(如前所述,这是我第一次进入 IAP)。
考虑到这一点,我很抱歉提出这个基本问题,但是是否有任何指南可用于限制应用程序核心数据方面允许的条目数量,以便稍后解锁IAP 的数量有限?
理想情况下,我想要两个 IAP:1) 价格一解锁 250 个条目,以及 2) 价格二解锁无限条目。
所以,我的主要问题是:
如何将我的应用程序中的条目数限制为 x 数量,然后在 IAP 通过时增加到无限?
任何关于这方面的指导将不胜感激。
据我所知,没有内置的方式告诉 Core Data:"don't create more than 250 instances of this entity"。
但是,在用户开始创建条目之前,您可以检查已经创建了多少条目。您可以使用 NSFetchRequest
来做到这一点。假设您的核心数据实体名为 Entry
:
NSError *error = nil;
NSFetchRequest *request = [NSFetchRequest fetchRequestWithEntityName:@"Entry"];
NSManagedObjectContext *context = ... // get the context somehow
NSUInteger currentCount = [context countForFetchRequest:request error:error];
NSUInteger entriesLimit = 250; //or whatever you want
BOOL isPurchaseActive = ...// check whether an appropriate in-app purchase is active
if(currentCount >= entriesLimit && !isPurchaseActive) {
//Notify the user: sorry, you have reached the limit of entries. Wanna buy more?
}