Указатели в объективе-c - PullRequest
       2

Указатели в объективе-c

0 голосов
/ 21 сентября 2011

У меня есть NSDictionarys, полный данных, и у меня есть метод, который использует данные.Какой NSDictionary используется, зависит от некоторого ввода от пользователя, поэтому мне было интересно, как я могу создать указатель на NSDictionary с данными.

Например,

Пользователь выбирает«option foo», поэтому метод должен использовать «foo dictionary».Вместо того, чтобы копировать «словарь foo» во временный словарь, как я могу ссылаться на него, например, чтобы «tempdictionary» содержал содержимое «словаря foo».

Это, вероятно, не имело смысла, но заранее спасибо.

Ответы [ 2 ]

5 голосов
/ 21 сентября 2011

Копирование не происходит по умолчанию. Просто возьмите NSDictionary, который вы хотите, и назначьте его новому указателю:

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

Это даст вам указатель на словарь, хранящийся в dataDictionary. Он не делает копию, если вы не попросите об этом.

1 голос
/ 21 сентября 2011

Копия не будет сделана, если вы явно не скажете коду сделать это. E.g.:

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
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...