【发布时间】:2011-08-24 04:45:46
【问题描述】:
这是我第一次使用 plist 作为为我的应用程序存储少量数据的方式。我现在的问题是我的应用程序给出了EXC_BAD_ACCESS 错误。在我阅读 plist 的方法中,它给了我summary unavailable。但是 NSMutableDictionary 给了我 2 个密钥/配对,我的 plist 只有 2 个值,只是为了学习如何使用 plist(现在)。我有一种感觉,由于这个 Summary Unavailable, I got theEXC_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 告诉我保留地址和事件时,问题就解决了。现在我的新 EXC_BAD_ACCESS 来自 main.m 文件:
int retVal = UIApplicationMain(argc, argv, nil, nil);
现在可能出了什么问题?
更新 2 这是我学习如何使用 plist 的网站。 plist tutorial
【问题讨论】:
-
哪一行得到了 EXC_BAD_ACCESS?
-
对不起,没有正确写出问题。 addr 和 event 都假设显示在
UITableViewCell[[cell textLabel] setText:addr];我会尝试@Jeff 的回复,然后更新这个问题。感谢您的快速回复!
标签: objective-c ios4 plist