我想将我的应用设置为免费版,并在应用内购买解锁,这样我就可以获得更多曝光率。免费版本应该是有限的,这就是我的问题。
我的应用程序大量使用核心数据并制作免费版本,我只想将显示的所有记录限制在每个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];}
答案 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: