2012-08-25 27 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中,值的详细信息是ALWAYS为空。这是为什么?在这种情况下,价值不应该保留吗?

[编辑]

我可以证实,getData不为空,因为我有以下检查:

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

} 

这是if声明,我试图分配值内到详细字典并转发到那个ViewController。我也尝试复制如下:

objMyVc.details = getData; 
+0

是的,它会被保留。甚至更多 - 自从你的财产被标记为保留并且你调用额外的分配或保留,你将会有泄漏。另一个地方有些不正确。你如何检查它为空? – beryllium

回答

0

您的代码似乎正确。你有没有检查getData是否为空?初始化之后,我还会检查细节是否为空。我不认为你的问题与保留有关。

+0

是的,'getData'肯定不为null。因为我有一个if语句,所以请确认。 – KVISH

+0

另外,我有一个'NSLog'语句来输出它的值。 – KVISH