这是我第一次使用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
答案 0 :(得分:1)
此后您使用addr
和event
的值吗?它们没有被保留,所以当savedStock
被解除时,它们也会被取消。如果这些是实例变量,请在将它们从字典中拉出时保留它们。