我正在将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]);
我需要循环这个来构建我的表 - 所以我在这里缺少什么?
答案 0 :(得分:1)
初始化你的ClientList,因此:
-(void)viewDidLoad
{
self.ClientList = [NSMutableArray array];
}
否则self.ClientList是一个nil指针,因此[self.ClientList addObject:]
是一个无声的no-op,就像[self.ClientList count]
一样。
顺便说一下,名称“clientList”可能更可取。我们喜欢我们的变量在Obj-C中开始低级。