【发布时间】:2013-03-27 14:13:51
【问题描述】:
也许这是一个非常常见和书呆子的问题。我有一个 NSMutableDictionary,我正在向其中添加一些对象,然后将字典添加到 NSMutableArray。将字典添加到数组后,我将删除字典的所有对象并将其设置为 nil,这将从添加字典的数组中删除数据。我做错了什么导致数组丢失数据??
NSMutableDictionary *lDict = [[NSMutableDictionary alloc]init];
[lDict setObject:lDate forKey:@"date"];
[lDict setObject:presentationId forKey:@"pptId"];
[lDict setObject:presentationName forKey:@"PresentationName"];
[lDict setObject:presentationDesc forKey:@"PresentationDesc"];
[lDict setObject:presentationThumb forKey:@"presentationThumb"];
[lDict setObject:postCallRowId forKey:@"postCallId"];
[lDict setObject:userReaction forKey:@"userReaction"];
[lDict setObject:appDel.gRegion forKey:@"Region"];
[lDict setObject:@"Presentation" forKey:@"ContentType"];
[durationArray addObject:lDict];
//here I am having data in array
[lDict removeAllObjects];
lDict=nil;
//here I lost data in array also
【问题讨论】:
-
丢失数据是什么意思? dict 保留您在那里设置的值,并且数组将保留字典而不是其中的值。如果你清理字典,数组指向一个空字典。
-
如果我必须在将字典添加到数组后释放它,我该怎么办?
-
如果您在非弧中,只需释放字典,或者像您一样将其设为 nil 但不发送 removeAllObjects。
-
虽然所有答案都同样可以接受,但我只能接受一个。
标签: ios ipad nsmutablearray nsmutabledictionary