更改此数组中的值

时间:2013-11-04 00:02:54

标签: objective-c arrays

想知道如何将“Jeremy Arimado”的第一个值改成不同的字符串?

crewData = @[
                @{
                    @"roleNameAr": @"Jeremy Arimado",
                    @"rolePhoneAr":@"123456",
                    },
                @{
                    @"roleNameAr": @"Jeremy Arimado 2",
                    @"rolePhoneAr":@"123456",
                    },
                @{
                    @"roleNameAr": @"Jeremy Arimado 3",
                    @"rolePhoneAr":@"123456",
                    }
                ];

1 个答案:

答案 0 :(得分:2)

@[]文字生成NSArray实例,该实例是不可变的。 同样,@{}生成NSDictionary,也是不可变的。

在修改对象之前,您必须获取对象的可变副本。

NSMutableArray *mutableCrewData = [crewData mutableCopy];
NSMutableDictionary *mutableCrewMember = [mutableCrewData[0] mutableCopy];
mutableCrewMember[@"roleNameAr"] = @"Foo Bar";
mutableCrewData[0] = mutableCrewMember;
crewData = mutableCrewData;

另一种方法是直接使用NSMutableDictionaryNSMutableArray,但you cannot directly use the literal syntax为此。