先上代码,再解释。
NSDictionary *dictionary = [NSDictionary dictionaryWithObjectsAndKeys:@"SMTReportEditController",@"activeInterface",@"",@"nextAPI", nil];
NSMutableDictionary * a=[NSMutableDictionary dictionaryWithDictionary:dictionary];
if(!self.mDetailModel){
[a setValue:@"" forKey:@"nextAPI"];
}else{
[a setValue:@"FILE_COPY" forKey:@"nextAPI"];
}
NSMutableDictionary 是 NSDictionary的子类。因此传入 NSMutableDictionary到NSDictionary定义的参数是等效的。
NSDictionary是不可变字典,因此无法直接调用setValue修改,否则会宕机。需要先装换为可变字典,然后才能修改。