限制应用程序免费版本(在应用程序购买)

时间:2010-01-20 02:01:57

标签: iphone uitableview core-data

我想将我的应用设置为免费版,并在应用内购买解锁,这样我就可以获得更多曝光率。免费版本应该是有限的,这就是我的问题。

我的应用程序大量使用核心数据并制作免费版本,我只想将显示的所有记录限制在每个tableview中的1行,或者如果其他人有任何更好的想法,那些也会有效。

我一直试图将我的numberOfRowsInSection设置为返回1,但每次添加一些东西时我都会得到一个范围异常,因为我正在使用fetchedResultsController。有什么想法吗?

这是我的部分和行代码:

- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {
return [[fetchedResultsController sections] count];}

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {

id <NSFetchedResultsSectionInfo> sectionInfo = [[fetchedResultsController sections] objectAtIndex:section];
return [sectionInfo numberOfObjects];}

3 个答案:

答案 0 :(得分:2)

-setFetchLimit:上使用NSFetchRequest。如果将其设置为1,那么NSFetchResultController将只返回一行。

答案 1 :(得分:0)

您可以在didSelectRow方法中处理此问题。如果该行不为0,则抛出一个UIAlertView,说明如何购买应用程序以使用完整版本。这还将向用户显示存在更多内容。我似乎记得Apple不喜欢完整版的广告,但我也看到了很多,所以我觉得现在好了。

答案 2 :(得分:0)

我也在按照马库斯的推荐做法:

    if(!appDelegate.fullVersion){

    [fetchRequest setFetchLimit:10];
    NSLog(@"only fetching 10 as not full version");
}

我在appDidFinishLaunching上检查完整版本并在appDelegate中维护一个BOOL。

确保在要使用的任何谓词之后添加setFetchLimit: