2012-03-31 60 views
-1

对不起,初学者在这里。 。 。NSMutableDictionary不够坚持足够长的时间

因此,我在应用程序委托中创建一个NSMutableDictionary,然后将其传递给视图控制器,因为它包含用于VC的选项,如背景图像,我想要解析的URL等。

无论如何,我为VC,initWithOptions写了一个自定义的init方法,我在那里传递字典。我想在后面的其他方法中使用这个字典 - 所以我为我的VC创建了一个NSMutableDictionary属性,并试图在那里存储传递的选项字典。但是,当我在后面的方法中获取该属性的内容时,它将返回null。如果我从init方法访问它,它可以工作。继承人一些示例代码:

-(id)initWithOptions:(NSMutableDictionary *)options { 
self = [super init]; 
if (self) { 
    // Custom initialization 

    self.optionsDict = [[NSMutableDictionary alloc]initWithDictionary:options]; 
    NSLog(@"dictionary in init method %@",self.optionsDict); 

NSLog记录字典的内容,它看起来像它的工作。然后当我这样做时:

- (void)viewDidLoad 
{  
    SDJConnection *connection = [[SDJConnection alloc]init]; 
    self.dataArray = [connection getEventInfoWithURL:[self.optionsDict objectForKey:@"urlkey"]]; 
    NSLog(@"dictionary in connection contains: %@", [self.optionsDict objectForKey:@"urlkey"]); 
    [_tableView reloadData]; 

字典返回空。我试着调整属性属性,它不适用于强或保留。有任何想法吗??

谢谢!

+0

遗憾的是,代码底部是一个小关 - 替换“dict”里self.optionsDict – 2012-03-31 23:28:32

+0

你可以自己做编辑你的问题:) – Saphrosit 2012-03-31 23:30:55

+0

没有我的意思是还甚至不与校正 – 2012-03-31 23:33:49

回答

0

这种情况有时会发生在我身上。您忘记拨打[super viewDidLoad],以免您的资产被创建。你的viewDidLoad将取代UIViewController的viewDidLoad。