我在NSMutableDictionary上做了一个小概念。 我有10个员工的四个密钥(姓名,年龄,电话号码,性别)。
如何将这些值分配给数组?
单独地,我为字典传递了4个不同的值,但第四个值重复出现。 这是我写的代码 - (void)viewDidLoad {
NSLog(@"in mytableviews viewdidload");
EmpArray=[[NSMutableArray alloc]init];
//namesArray=[[NSMutableArray alloc]initWithObjects:@"jam",@"jack",@"gillchrist",@"jackson"];
EmpDictionary=[[NSMutableDictionary alloc]init];
[EmpDictionary setValue:@"martin" forKey:@"name"];
[EmpDictionary setValue:@"18" forKey:@"age"];
[EmpDictionary setValue:@"M" forKey:@"gender"];
[EmpDictionary setValue:@"9652893070" forKey:@"phoneNumber"];
[EmpArray addObject:EmpDictionary];
NSLog(@"emparray counr %d",[self.EmpArray count]);
[EmpDictionary setValue:@"jack" forKey:@"name"];
[EmpDictionary setValue:@"19" forKey:@"age"];
[EmpDictionary setValue:@"F" forKey:@"gender"];
[EmpDictionary setValue:@"96656893070" forKey:@"phoneNumber"];
[EmpArray addObject:EmpDictionary];
[EmpDictionary setValue:@"Louis" forKey:@"name"];
[EmpDictionary setValue:@"21" forKey:@"age"];
[EmpDictionary setValue:@"F" forKey:@"gender"];
[EmpDictionary setValue:@"9652893060" forKey:@"phoneNumber"];
[EmpArray addObject:EmpDictionary];
[EmpDictionary setValue:@"Gillchrist" forKey:@"name"];
[EmpDictionary setValue:@"23" forKey:@"age"];
[EmpDictionary setValue:@"M" forKey:@"gender"];
[EmpDictionary setValue:@"99998989" forKey:@"phoneNumber"];
[EmpArray addObject:EmpDictionary];
[super viewDidLoad];
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
NSLog(@"creating cell in cell for row at index");
employeeCell *empcell = (employeeCell *)[tableView dequeueReusableCellWithIdentifier:@"empcell1"];
if(empcell==nil)
{
NSLog(@"In creating cell");
[[NSBundle mainBundle]loadNibNamed:@"employeeCell" owner:self options:nil];
empcell=tableCell;
}
for(int i=1;i<=3;i++)
{
NSLog(@"after creating cell");
//NSDictionary *temp=[self.EmpArray objectAtIndex:indexPath.row];
NSDictionary *temp = [self.EmpArray objectAtIndex:indexPath.row];
NSString *empname= [temp objectForKey:@"name"];
NSString *age= [temp objectForKey:@"age"];
//NSInteger age = [temp objectForKey:@"age"];
NSString *gender= [temp objectForKey:@"gender"];
NSString *phonenumber = [temp objectForKey:@"phoneNumber"];
empcell.EmpName.text=empname;
empcell.EmpAge.text=age;
empcell.EmpGender.text=gender;
empcell.EmpPhoneNumber.text=phonenumber;
empcell.accessoryType=UITableViewCellAccessoryDisclosureIndicator;
}
return empcell;
}
答案 0 :(得分:1)
您想要为要添加的每组条目创建新词典或 do
[[EmpArray addObject:[EmpDictionary copy]];
否则,您只需添加相同的对象4次,因此最终结果显示4个单元格中包含相同的信息。你的结束数组不是4个不同的对象,只有4个指向同一个对象。