2011-09-21 70 views
0

我有一些NSDictionarys充滿了數據,我有一個利用數據的方法。其中NSDictionary取決於用戶的一些輸入,所以我想知道如何用數據創建一個指向NSDictionary的指針。指針在目標-c

例如

用戶選擇「選項foo」的,所以該方法將需要使用「富字典」。例如,我不能將「foo字典」複製到臨時字典中,而應該如何引用它,以便「tempdictionary」具有「foo字典」的內容。

這可能沒有意義,但在此先感謝。

回答

5

默認情況下不會發生複印​​。只要抓住你想要的NSDictionary並將其分配給一個新的指針:

NSDictionary *fooDictionary = [dataDictionary valueForKey:@"foo"]; 

這會給你一個指針存儲內dataDictionary字典。除非您提出要求,否則不會複印。

1

除非您明確告訴代碼這樣做,否則不會進行復制。例如:

NSDictionary *fooDict = ...; // initialize fooDict and probably other dicts 

if ([self useFoo]) { 
    [self stuffWithFooDict:fooDict]; // will pass pointer of fooDict 
} 

if ([self useFooCopy]) { 
    [self stuffWithFooCopy:[fooDict copy]]; // will use a copy of fooDict 
}