2011-08-24 8 views
0

私のアプリケーション用の小さなデータを格納する方法としてplistを使用しています。今私の問題は、私のアプリケーションがEXC_BAD_ACCESSエラーを出すことです。 plistを読む私の方法では、それは私にsummary unavailableを与えました。しかしNSMutableDictionaryは私に2つのキー/ペアを与えました。私のplistはplistを使う方法を学ぶために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がaddrとイベントを保持するために私に言ったとき、それが解決しました。今度は新しい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を削除すると、それらも残ってしまいます。それらがインスタンス変数の場合は、それらを辞書から取り出すときに保持します。

+0

よろしくお願いします。 –

関連する問題