使用应用内购买限制核心数据应用的条目数

Posted

技术标签:

【中文标题】使用应用内购买限制核心数据应用的条目数【英文标题】:Limit the number of entries to a core data application with the use of in app purchases 【发布时间】:2015-02-19 13:43:18 【问题描述】:

我在 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 通过时增加到无限?

对此的任何指导将不胜感激。

【问题讨论】:

【参考方案1】:

据我所知,没有内置方法可以告诉 Core Data:“不要创建超过 250 个该实体的实例”。

不过,在用户开始创建条目之前,您可以检查已经创建了多少条目。您可以使用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?

【讨论】:

亲爱的 Michal - 非常感谢您的回复,这是有道理的。这真的很有帮助,我看到我可以使用这段代码来实际确定条目的数量并从那里开始。再次感谢 - 我很感激!

以上是关于使用应用内购买限制核心数据应用的条目数的主要内容,如果未能解决你的问题,请参考以下文章

随机进入采样,限制在几分之一秒内

推送通知限制

限制列表控件 MFC 中的条目数

是否可以限制 html 中文本输入的每分钟最大条目数?

histogram_bounds 中的最大条目数

我的 ios 应用程序的大小限制,尤其是核心数据