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

时间:2010-06-23 20:06:37

标签: objective-c iphone ipad

我正在将json加载到我添加到NSMutableArray的对象列表中,这似乎工作得很好,除了我似乎无法保留数组以便稍后访问。

这是我的.h:

@interface ClientController : UITableViewController {
    NSMutableData *responseData;
    NSMutableArray *ClientList;
}

@property (nonatomic, retain) NSMutableArray *ClientList;

在我的.m中我添加:

@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 个答案:

答案 0 :(得分:1)

初始化你的ClientList,因此:

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

否则self.ClientList是一个nil指针,因此[self.ClientList addObject:]是一个无声的no-op,就像[self.ClientList count]一样。

顺便说一下,名称“clientList”可能更可取。我们喜欢我们的变量在Obj-C中开始低级。