2014-10-26 101 views
0

访问一个NSArray计数我有块设置如下:如何在特殊情况下

id block = ^(id obj, BOOL *ignored) 
{ 
    id data = [self.writer dataWithObject:obj]; 
    NSString *output = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];   
}; 

当我做呼叫:

[[obj objectForKey:@"roster] objectForKey:@"players"]; 

我在看球员的数组。当我添加.count时,它找不到计数,因为它说count不是id的属性。我怎样才能访问这个数组的数量?

编辑:

这是我的整个数据块:

id block = ^(id obj, BOOL *ignored) { 
       id data = [self.writer dataWithObject:obj]; 

       NSMutableArray *players = (NSMutableArray*)[[obj objectForKey:@"roster"] objectForKey:@"players"]; 
       _players = [NSMutableArray array]; 

       //Create player objects then add them to the array. 

       for (int i = 0; i <= players.count; i++) 
       { 
        [_players addObject:[HNPlayerObject newPlayerWithPlayerId:(@"%@",[[[obj objectForKey:@"roster"] objectForKey:@"players"][i] objectForKey:@"id"])FirstName:(@"%@",[[[obj objectForKey:@"roster"] objectForKey:@"players"][i] objectForKey:@"first"]) LastName:(@"%@",[[[obj objectForKey:@"roster"] objectForKey:@"players"][i] objectForKey:@"last"]) Number:[(@"%@",[[[obj objectForKey:@"roster"] objectForKey:@"players"][i] objectForKey:@"number"]) intValue] Team:@"Badgers" Position:@"Unknown" Description:@"" GamesPlayed:[(@"%@",[[[obj objectForKey:@"roster"] objectForKey:@"players"][i] objectForKey:@"gp"]) intValue] Goals:[(@"%@",[[[obj objectForKey:@"roster"] objectForKey:@"players"][i] objectForKey:@"g"]) intValue] Assists:[(@"%@",[[[obj objectForKey:@"roster"] objectForKey:@"players"][i] objectForKey:@"a"]) intValue] Points:[(@"%@",[[[obj objectForKey:@"roster"] objectForKey:@"players"][i] objectForKey:@"pts"]) intValue] PenaltyMinutes:[(@"%@",[[[obj objectForKey:@"roster"] objectForKey:@"players"][i] objectForKey:@"pim"]) intValue] PlusMinus:[(@"%@",[[[obj objectForKey:@"roster"] objectForKey:@"players"][i] objectForKey:@"pm"]) intValue] IsPlaying:NO]]; 
        [_playersTableView reloadData]; 
       } 

       [_playersTableView reloadData]; 
      }; 

我收到此错误: 'NSRangeException',原因:“*** - [__ NSArrayM objectAtIndex:]:指数17超越界限[0..16]'

回答

0
NSArray *array = (NSArray*)[[obj objectForKey:@"roster] objectForKey:@"players"]; 

然后你就可以访问count属性。

+0

我有另一个问题,你可以帮忙。 – aviators54 2014-10-26 14:56:32

+0

与我分享,让我知道我是否可以做到。 – gabbler 2014-10-26 14:57:28