0

似乎存储在字典中的对象是原始对象的副本!这么奇怪 !!

在下面的代码中,

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);

我有两个不同的地址!

有谁知道发生了什么?

4

1 回答 1

3

你只是打印了错误的东西。myEntriesDicomyEntries是两个不同的变量,它们的相同 - 这些值是引用。

当您传递&myEntriesNSLog您时,您传递的是对变量的引用,myEntries而不是其中的值,对于myEntriesDico.

删除两个&'s,这将传递作为引用的值,%p并将正确格式化它们 - 两个输出应该是相同的。

于 2013-04-02T18:07:17.187 回答