NDictionary即使在保留或复制后也会自动释放

时间:2010-10-21 18:58:42

标签: nsdictionary

我使用以下方法在ViewDidAppear中获取NSDictionary对象。但是当我尝试在 CellForRowAtIndexPath()中访问它时,它总是为零。我已经尝试添加额外的保留和副本,但它仍然被释放。我现在已经把头发拉了3个小时。任何帮助,将不胜感激。

摘录:

@property(nonatomic, retain) NSDictionary* userInfoObj;  

- (void) viewDidAppear:(BOOL)animated  
{  
 [super viewWillAppear:animated];  
        **//The object has data in it at this point**  
 self.UserInfoObj  = [self getUserInfo];  

}  

- (NSDictionary*)getUserInfo  
{  
 JsonHelper *helper=[[JsonHelper alloc] autorelease];  
 NSString* apiURL = [self.appDelegate urlGetUserInfo];  
 apiURL = [apiURL stringByReplacingOccurrencesOfString:@"{user_id}" withString:[UserSettings lastLoginUserId]];   
 return [helper getJsonDictionaryFromWebMethod:apiURL];  
}  


- (NSDictionary*)getJsonDictionaryFromWebMethod :(NSString*) url  
{  
.....  
.....  
....  
 // Get JSON as a NSString from NSData response  
 NSString *json_string = [[NSString alloc] initWithData:response encoding:NSUTF8StringEncoding];  

 // parse the JSON response into an object  
 // Here we're using NSArray since we're parsing an array of JSON status objects  
 dict = [[parser objectWithString:json_string error:nil] retain];  

 return dict;  
}  

1 个答案:

答案 0 :(得分:0)

尝试将self.UserInfoObj = [self getUserInfo];放入 viewDidLoad 委托方法中。