发布导致EXC_BAD_ACCESS的NSString

时间:2010-08-27 20:21:51

标签: iphone nsstring exc-bad-access

感谢您对此的帮助。

我在我的主要捆绑中从一个plist中拉出一个NSDictionary并且遇到了麻烦。这是代码:

- (void)viewDidLoad {

    // Pull in FAQ from Plist
    NSString *strFAQPlist = [[NSBundle mainBundle] pathForResource:@"FAQs" ofType:@"plist"];
    dictFAQList = [[NSDictionary alloc] initWithContentsOfFile: strFAQPlist];

    // Create indexed array to hold the keys
    arrFAQKeys = [[dictFAQList allKeys] retain];

    // Release local vars
    [strFAQPlist release];

    [super viewDidLoad];
}

我觉得我应该像我一样释放NSString。问题是,当我这样做时,我收到一个EXC_BAD_ACCESS错误。当我发布评论时,一切正常。有人可以向我解释为什么会发生这种情况吗?

提前致谢!

1 个答案:

答案 0 :(得分:3)

pathForResource会返回自动释放的NSString

如果您调用了alloc / init方法,复制方法或明确保留它,则只调用release。

如果您没有直接创建对象(或保留它),请不要释放它。