代码之家  ›  专栏  ›  技术社区  ›  Slee

创建一个可变数组,我可以在iPhone上的视图控制器中访问任何地方?

  •  0
  • Slee  · 技术社区  · 15 年前

    我正在将JSON加载到我要添加到NSmutableArray中的对象列表中,该列表似乎工作正常,但我似乎无法保留数组以供以后访问。

    这是我的.H:

    @interface ClientController : UITableViewController {
        NSMutableData *responseData;
        NSMutableArray *ClientList;
    }
    
    @property (nonatomic, retain) NSMutableArray *ClientList;
    

    在M.M. I中添加:

    @synthesize ClientList;
    

    稍后,我有一个方法来填充它(客户机也是我拥有的一个类):

    /* some code that parses the Json */
    for (int i = 0; i < [items count]; i++) 
            {
                Client* client = [[Client alloc] init];
                client.CompanyName = [[items objectAtIndex:i] objectForKey:@"CompanyName"]; 
                client.ClientID = [[items objectAtIndex:i] objectForKey:@"ClientID"];           
    
                [ClientList addObject:client];
    
                NSLog(@"CompanyName: %@\n", client.CompanyName);
                [client release];
            }
    

    控制台向我展示了这是正常工作的,因为我看到了我期望的数据,但是当我这样做时,我得到一个空值:

    NSLog(@"Clients Count: %@\n", [ClientList count]);
    

    我需要通过这个循环来构建我的表-那么我在这里缺少什么?

    1 回复  |  直到 15 年前
        1
  •  1
  •   Dan Ray    15 年前

    必须初始化你的客户名单,周四:

    -(void)viewDidLoad
    {
      self.ClientList = [NSMutableArray array];
    }
    

    否则self.clientlist是一个nil指针,因此, [self.ClientList addObject:] 是无声的不作声,就像现在一样 [self.ClientList count] .

    顺便说一下,“clientlist”这个名字可能更好。我们希望变量在obj-c中开始小写。