plist输出值的问题

时间:2011-08-24 04:45:47

标签: objective-c ios4 plist

这是我第一次使用plist作为为我的应用程序存储一些数据的方法。我现在的问题是我的应用程序出现EXC_BAD_ACCESS错误。在我阅读plist的方法中,它给了我summary unavailable。但是NSMutableDictionary给了我2个键/配对,我的plist只有2个值才学习如何使用plist(现在)。我有一种感觉,由于此摘要不可用, I got the EXC_BAD_ACCESS`错误?

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

非常感谢任何帮助。

更新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

1 个答案:

答案 0 :(得分:1)

此后您使用addrevent的值吗?它们没有被保留,所以当savedStock被解除时,它们也会被取消。如果这些是实例变量,请在将它们从字典中拉出时保留它们。