2011-08-24 7 views
0

내 응용 프로그램에 대한 작은 데이터를 저장하는 방법으로 plist를 처음 사용합니다. 내 문제는 지금 내 응용 프로그램이 EXC_BAD_ACCESS 오류를 제공하고 있습니다. plist를 읽는 나의 방법에서는, 그것은 summary unavailable를 주었다. 하지만 NSMutableDictionary 내게 plist (현재)를 사용하는 방법을 배우기 위해 단지 2 개의 가치를 가지고 2 키/쌍이 준. 요약 사용할 수 없음 , I got the EXC_BAD_ACCESS` 오류로 인해 느낌이 들었습니까?plist 출력 값 문제

-(void)readFile{ 
    NSError *error; 
    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); //1 
    NSString *documentsDirectory = [paths objectAtIndex:0]; //2 
    NSString *path = [documentsDirectory stringByAppendingPathComponent:@"EventAddress.plist"]; //3 

    NSFileManager *fileManager = [NSFileManager defaultManager]; 

    if (![fileManager fileExistsAtPath: path]) //4 
    { 
     NSString *bundle = [[NSBundle mainBundle] pathForResource:@"EventAddress" ofType:@"plist"]; // 5 

     [fileManager copyItemAtPath:bundle toPath: path error:&error]; //6 
    } 

    NSMutableDictionary *savedStock = [[NSMutableDictionary alloc] initWithContentsOfFile: path]; 

    //load from savedStock both addr and event are NSString 
    addr = [savedStock objectForKey:@"Address"]; 
    event = [savedStock objectForKey:@"Event"]; 

    [savedStock release]; 
} 

어떤 도움을 주시면 감사하겠습니다.

UPDATE 1

Where the error occurred was at the - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{ 
    ... 
    ... 
    // EXC_BAD_ACCESS happened at this line 
    [[cell textLabel] setText:addr]; 
} 

그러나 @Jeff는 요지 및 이벤트를 유지하라고 할 때 그 해결되었다. 이제 내 새 EXC_BAD_ACCESS이 main.m 파일에서 나옵니다. int retVal = UIApplicationMain(argc, argv, nil, nil);

지금 무엇이 잘못되었을 수 있습니까?

업데이트 2 이것은 plist를 사용하는 방법을 배웠던 사이트입니다. plist tutorial

+0

EXC_BAD_ACCESS를받는 라인은 무엇입니까? – progrmr

+0

죄송합니다, 질문을 제대로 작성하지 않았습니다. addr과 event는 둘 다'UITableViewCell'' [[cell textLabel] setText : addr];에 표시한다고 가정합니다. @ Jeff의 회신을 시도하고이 질문을 업데이트 할 것입니다. 빠른 답장을 보내 주셔서 감사합니다! –

답변

1

addrevent의 값을 사용하고 있습니까? 그것들은 유지되지 않으므로, savedStock이 dellocated 될 때, 그들은 역시있을 것입니다. 그것들이 인스턴스 변수라면, 사전에서 빼낼 때 그것을 유지하십시오.

+0

오케이, 지금 해보고 테스트 해 보겠습니다. –