2012-04-18 67 views
0

我的数组在每个索引处包含(firstName,lastName,age)。现在我想改变索引1处的年龄。请指导如何做到这一点。这是我的代码。如何在每个索引处包含多个值的nsmutablearray中的特定索引替换对象

- (void)viewDidLoad { 
[super viewDidLoad]; 
productArray=[[NSMutableArray alloc]init]; 

PersonDetail *personObj = [[PersonDetail alloc] init]; 
personObj.firstName = @"Adeem"; 
personObj.lastName = @"Basraa"; 
personObj.age = @"5"; 

[productArray addObject:personObj]; 
[personObj release]; 

PersonDetail *personObj = [[PersonDetail alloc] init]; 
personObj.firstName = @"Ijaz"; 
personObj.lastName = @"Ahmed"; 
personObj.age = @"10"; 

[productArray addObject:personObj]; 
[personObj release]; 

PersonDetail *personObj = [[PersonDetail alloc] init]; 
personObj.firstName = @"Waqas"; 
personObj.lastName = @"Ahmad"; 
personObj.age = @"15"; 
[productArray addObject:personObj]; 
[personObj release]; 

}

+0

通过使用键值,您可以替换nsmutable数组的任何索引处的内容。 – 2012-04-18 06:47:27

+0

你错过了一些关于结构的信息... – justin 2012-04-18 06:47:49

回答

5
Person *person = (Person *)[myArray objectAtIndex:1]; 
person.age = 2; 

假设Person是存储阵列中的自定义对象

+0

令人毛骨悚然 - 相同类型。一样的名字。同样的年龄:) – justin 2012-04-18 06:54:09

+0

好吧,你赢了..你在我之前发布:) – giorashc 2012-04-18 06:56:07

+0

其实,你打了我1分钟。我会删除我的=) – justin 2012-04-18 06:56:35

1

假如你NSMutableArrayNSMutableDictionary对象,

尝试这样:

NSMutableDictionary* entry = [entries objectAtIndex:index]; 

[entry setValue:@"newAge" forKey:@"Age"]; 
4

使用本

[arrname replaceObjectAtIndex:1 withObject:[NSNumber numberWithInt:13]];//13 is the age you want to change 
2

试试这个

-insertObject:atIndex: or replaceObjectAtIndex:withObject: 
4

您应该使用NSMutableDictionary保存的姓名,年龄,电话,地址,并添加本字典到你的阵列。

[[arry objectAtIndex:1] setObject:@"value" forKey:@"key"]; 

像这样,你可以改变价值。

2

也许这会帮助你。

- (void)viewDidLoad { 
[super viewDidLoad]; 
productArray=[[NSMutableArray alloc]init]; 

PersonDetail *personObj = [[PersonDetail alloc] init]; 
personObj.firstName = @"Adeem"; 
personObj.lastName = @"Basraa"; 
personObj.phoneNumber = @"123456789"; 

[productArray addObject:personObj]; 
[personObj release]; 

PersonDetail *personObj = [[PersonDetail alloc] init]; 
personObj.firstName = @"Ijaz"; 
personObj.lastName = @"Ahmed"; 
personObj.phoneNumber = @"987654321"; 

[productArray addObject:personObj]; 
[personObj release]; 

PersonDetail *personObj = [[PersonDetail alloc] init]; 
personObj.firstName = @"Waqas"; 
personObj.lastName = @"Ahmad"; 
personObj.phoneNumber = @"45656789"; 
[productArray addObject:personObj]; 
[personObj release]; 
} 

- (void)change { 

for (int i=0;i<[productArray count];i++) { 
      PersonDetail *personObj = (PersonDetail *)[[productArray objectAtIndex:i] retain]; 
      personObj.phoneNumber = @"New"; 
    } 
} 
相关问题