2013-11-04 33 views
0

想知道如何将“Jeremy Arimado”的第一个值更改为不同的字符串?更改此数组中的值

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

回答

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