0

所以我有这个 NSMutableDictionary 对象:

pdata=[[NSMutableDictionary alloc] initWithObjectsAndKeys:
       @"",@"pid",
       @"",@"pname",
       [[NSMutableArray alloc] initWithCapacity:1],@"ilist",
       nil];

然后我将此对象复制到另一个对象中,如下所示:

NSMutableDictionary *pdataCopy=[[NSMutableDictionary alloc] initWithDictionary:pdata copyItems:TRUE];

但是一旦我这样做了,pdataCopy.ilist现在是一个 NSArray 而不是 NSMutableArray。

如何在复制字典对象的同时保持其内部属性的可变性?

4

2 回答 2

2

其实你不能。您可以通过

NSMutableArray *mutableArray = [pdataCopy.ilist mutableCopy]
于 2012-11-02T14:58:11.893 回答
0

你有三个选择:

  1. 不指定copyItems:YES
  2. 复制后扫描字典并根据需要将 NSArrays 替换为 NSMutableArrays(使用mutableCopy)。
  3. 创建您自己的 NSMutableArray 子类,它copyWithZone通过生成自身的可变副本来响应(并在字典中使用该类的对象)。
于 2012-11-02T15:20:08.607 回答