1

我想使用应用内购买。请帮我解决 NSUserDefaults。

我有:

free = [[NSArray alloc] initWithObjects:@"Beer", @"Ice-Cream", nil];


paid = [[NSArray alloc] initWithObjects:@"Beer", @"Ice-Cream", @"Pizza", @"Hot-dog", @"Candy", nil];

现在,如果用户成功购买了我的产品,我有以下代码:

  [[NSUserDefaults standardUserDefaults] setBool:YES forKey:@"isProUpgradePurchased" ];
  [[NSUserDefaults standardUserDefaults] synchronize];

默认情况下,我的 UITableView 加载免费的 NSArray,我如何创建一个 NSUserDefaults 并调用我的 UITableView 来加载 PAID NSArrary。先感谢您

4

2 回答 2

1
NSArray *dataArr;

if ([[NSUserDefaults standardUserDefaults] boolForKey:@"isProUpgradePurchased"]) {
    // load paid array
    dataArr = paid;
} else {
    // load free array
    dataArr = free;
}

[tableView reloadData];

dataArr在实现表视图数据源方法时使用,不要直接使用免费和付费数组。

于 2012-09-04T04:47:35.163 回答
1

在 tableView 委托方法中这样做:

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
  if([[NSUserDefaults standardUserDefaults] ObjectforKey:@"isProUpgradePurchased"])
  {
     return [paid count];
  }
  else
  {
     return [free count];
  }
}

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath;
{
   ..............
   if([[NSUserDefaults standardUserDefaults] ObjectforKey:@"isProUpgradePurchased"])
  {
     cell.titleLabel.text = [paid ObjectAtIndex:indexPath.row];
  }
  else
  {
     cell.titleLabel.text = [free ObjectAtIndex:indexPath.row];
  }
}
于 2012-09-04T04:50:25.590 回答