2012-08-25 2 views
0

У меня есть класс со следующим набором:проблема управления IOS память со свойствами

#import <UIKit/UIKit.h> 
#import "AppDelegate.h" 
@interface MyViewController : UIViewController 
{ 
    NSMutableDictionary *details;   
} 
@property (nonatomic,retain) NSMutableDictionary *details; 

Я удалил все ненужные детали для этого вопроса. В файле реализации я включил @synthesize details;

Я переадресация на эту точку зрения с другой точкой зрения, и в этом классе я получаю локальный словарь:

NSMutableDictionary *getData = [responsestring JSONValue]; 

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

objMyVc.details = [[NSMutableDictionary alloc] initWithDictionary:getData]; 
objMyVc.details = [getData retain]; 

После того, как я нахожусь в MyViewController, детали значение всегда нуль. Почему это так? Не следует ли сохранить значение в этом случае?

[EDIT]

Я могу подтвердить, что getData не равно нулю, потому что у меня есть следующие проверки:

if ([getData valueForKey:@"VALUE"]) { 

} 

Это в if заявление, что я пытаюсь присвоить значение в словарь данных и переадресацию на него ViewController. Я также попытался скопировать, как показано ниже:

objMyVc.details = getData; 
+0

Да, он будет сохранен. Более того - у вас будет утечка, так как ваше свойство помечено как сохранение, и вы вызываете дополнительное выделение или сохранение. Что-то неверно в другом месте. Как вы проверили его для null? – beryllium

ответ

0

Ваш код кажется правильным. Вы проверили, является ли getData нулевым? Я также хотел бы проверить, является ли информация нулевой сразу после ее инициализации. Я не думаю, что ваша проблема связана с сохранением.

+0

Да, 'getData' наверняка не имеет значения. Поскольку у меня есть инструкция if, перед тем, как подтвердить это. – KVISH

+0

Кроме того, у меня есть инструкция 'NSLog' для вывода ее значения. – KVISH

Смежные вопросы