2012-03-31 5 views
-1

죄송합니다, 여기 초보자. . .NSMutableDictionary가 충분히 길지 않습니다

그래서 응용 프로그램을 시작할 때 내 응용 프로그램 대리인에서 NSMutableDictionary를 만들고 배경 컨트롤러와 같은 VC에 대한 옵션을 포함하는보기 컨트롤러에 전달합니다. 예를 들어 구문 분석하려는 URL 등

어쨌든, 난에 사전을 전달하는 VC, initWithOptions, 대한 사용자 지정 초기화 방법을 썼다. 나중에 다른 메서드에서이 사전을 사용하려고합니다. 따라서 VC에 대해 NSMutableDictionary 속성을 만들고 거기에 전달 된 옵션 사전을 저장하려고합니다. 그러나 나중의 메서드에서 해당 속성의 내용을 가져 오면 null을 반환합니다. init 메소드에서 액세스하면 작동합니다. heres는 몇 가지 예제 코드 :

-(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]; 

사전은 null을 반환합니다. 필자는 속성 속성을 조정하려고 시도했으나 강하고 유지되지는 않았습니다. 어떤 아이디어?

고맙습니다!

+0

미안 하단에있는 코드는 약간 떨어져 있습니다. self.optionsDict –

+0

으로 "dict"를 대체하십시오. 직접 질문을 편집 할 수 있습니다. – Saphrosit

+0

아니요. 수정하지 않아도 여전히 작동하지 않습니다. –

답변

0

이 가끔 나에게 발생합니다. [super viewDidLoad]으로 전화를 걸지 않으므로 등록 정보가 생성되지 않습니다. viewDidLoad는 UIViewController의 viewDidLoad 대신 사용됩니다.

관련 문제