Адресация и указатели в объективном C

голоса
0

Так вот проблема.

У меня есть метод (или сообщение, как они называются в Obj-C) я передаю в указатель на объект.

внутри этого метода я собираюсь изменить то, что указатель указывает на, и освободить старый объект. И я хотел бы переменный экземпляр (который передается в метод) в настоящую ссылку на новое значении, возложенное на него. в основном, имеющие переменный работать как параметр OUT в таких языках, как C #

-(NSDictionary *) GetListWithCommand:(NSString*) command andCache:(CachedMutableDictionary*) cache  
{  
    CachedMutableDictionary* Dictionary = [Getfrom somesource];
    CachedMutableDictionary* temp = cache;  
    cache = [Dictionary retain];  
    [temp release];  
}  

поэтому я считаю, что мне нужно отправить в адрес-ссылки для переменной кэша, а затем иметь возможность обратиться к нему как на уровне адресов или на уровне объекта.

она также может быть мудрее / легче создать метод копирования на классе CachedMutableDictionary.

Задан 19/05/2009 в 12:19
источник пользователем
На других языках...                            


2 ответов

голоса
1

Да, это звучит, как этот метод должен принять CachedMutableDictionary **, к которому абонент проходит и кэш. Последние три строки метода становятся:

CachedMutableDictionary *temp = *cache;
*cache = [Dictionary retain];  
[temp release];

Это пахнет смешно мне, хотя. Где кэш приходят от первоначально? Всегда ли это переменная экземпляра объекта? Почему бы не просто передать в объекте?

Ответил 19/05/2009 в 12:26
источник пользователем

голоса
5

Вы просто должны добавить некоторые звезды здесь и там:

-(NSDictionary *) GetListWithCommand:(NSString*) command
                            andCache:(CachedMutableDictionary**) cache  
{  
    CachedMutableDictionary* Dictionary = [Getfrom somesource];
    CachedMutableDictionary* temp = *cache;  
    *cache = [Dictionary retain];  
    [temp release];  
}
Ответил 19/05/2009 в 12:29
источник пользователем

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more