似乎存储在字典中的对象是原始对象的副本! 真奇怪!!
在以下代码中,
myData = [NSMutableDictionary dictionaryWithObjects:[NSArray arrayWithObjects:myEntries, preambule, nil]
forKeys:[NSArray arrayWithObjects:@"myEntries", @"preambule", nil]];
NSMutableArray * myEntriesDico = [myData objectForKey:@"myEntries"] ;
NSLog(@"!!!!!!!!! Address of myEntries (in the le dict) : %p", &myEntriesDico);
NSLog(@"!!!!!!!!! Address of myEntries : %p", &myEntries);
我有两个不同的地址!
任何人都知道发生了什么事?
答案 0 :(得分:3)
你只是打错了。 myEntriesDico
和myEntries
是两个不同的变量,其值是相同的 - 这些值是引用。
当您将&myEntries
传递给NSLog
时,您传递的是对myEntries
变量的引用,而不是其中的值,myEntriesDico
也是如此。
删除两个&
,它们将传递值作为引用,%p
将正确格式化它们 - 两个输出应该相同。