如何从pList文件中获取n个对象以在我的表视图中显示?

时间:2015-10-10 18:55:40

标签: ios objective-c dictionary

我必须将plist文件中的所有对象(20个对象)显示给我的TableViewCell。现在我想在我的plist文件中只显示11个对象到我的TableViewCell。

如果可以的话,我还希望11个对象是20个对象中的随机对象,没有重复。

请帮忙。

这是我的代码:

- (void)viewDidLoad {
[super viewDidLoad];

//get URL from plist file.

NSString* path = [[NSBundle mainBundle]pathForResource:@"playersList" ofType:@"plist"];

//Save plist file to an Array
self.listPlayer = [[NSArray alloc]initWithContentsOfFile:path];

}

_TableViewCell *方法:

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {

static NSString* cellIdentifier = @"Cell";

UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:cellIdentifier];

if (!cell) {
    cell = [[UITableViewCell alloc]initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:cellIdentifier];
}
// Configure the cell...

NSDictionary* eachPlayer = [self.listPlayer objectAtIndex:indexPath.row];

cell.textLabel.text = [eachPlayer objectForKey:@"Name"] ;
cell.detailTextLabel.text = [eachPlayer objectForKey:@"Position"];

return cell;

}

1 个答案:

答案 0 :(得分:0)

您可以获得完整列表的随机子列表,如下所示:

self.listPlayer = [[NSMutableArray alloc] initWithContentsOfFile:path];    
NSInteger numWantedPlayers = 11;
while (self.listPlayer.count > numWantedPlayers) {
    NSUInteger indexToRemove = arc4random_uniform((uint32_t) all.count);
    [self.listPlayer removeObjectAtIndex:indexToRemove];
}