Iphone 当使用viewwilldisease:(BOOL)动画方法时,我获得了一个EXC\u BAD\u访问权限

Iphone 当使用viewwilldisease:(BOOL)动画方法时,我获得了一个EXC\u BAD\u访问权限,iphone,iphone-sdk-3.0,ios4,Iphone,Iphone Sdk 3.0,Ios4,因此,当我的视图出现时,我正在从.plist访问一些数据设置。当我使用viewdide:BOOLanimated方法访问这些数据时,一切都很好。但是,当我使用VIEW访问数据时,将显示:BOOLanimated方法来访问我的数据,所有操作都会停止,并且我会收到EXC_BAD_访问错误 有人能帮我解决这个问题吗 - (void)viewDidAppear:(BOOL)animated { NSLog(@"View Will Appear method"); NSString *

因此,当我的视图出现时,我正在从.plist访问一些数据设置。当我使用viewdide:BOOLanimated方法访问这些数据时,一切都很好。但是,当我使用VIEW访问数据时,将显示:BOOLanimated方法来访问我的数据,所有操作都会停止,并且我会收到EXC_BAD_访问错误

有人能帮我解决这个问题吗

- (void)viewDidAppear:(BOOL)animated {

    NSLog(@"View Will Appear method");

    NSString *filePath = [self settingsFilePath];
    if ([[NSFileManager defaultManager] fileExistsAtPath:filePath]) {

        NSArray *array = [[NSArray alloc] initWithContentsOfFile:filePath];

        if ([[array objectAtIndex:0] intValue] == 0) {
            UIImage *imageLow = [UIImage imageNamed:@"image1.png"];
            [object1 setImage:imageLow];
            [imageLow release];
            unitRatio = 1.8;
        }
        else if ([[array objectAtIndex:0] intValue] == 1) {
            UIImage *imageHigh = [UIImage imageNamed:@"image2.png"];
            [object1 setImage:imageHigh];
            [imageHigh release];
            unitRatio = 0.9;
        }

        [array release];

    }
    else {
        UIImage *imageLow = [UIImage imageNamed:@"image1.png"];
        [object1 setImage:imageLow];
        [imageLow release];
        unitRatio = 1.8;
    }

}

[imageLow release]和[imageHigh release]调用是不必要的,会导致崩溃。ImageName:返回的对象是预自动释放的,因此您不需要自己释放它们。

不需要[imageLow release]和[imageHigh release]调用,它们会导致崩溃。ImageName:返回的对象是预自动释放的,因此您不需要自己释放它们。

此外,您必须在ViewWillExample方法中调用super:

[super viewWillAppear:animated]

这不是导致崩溃的原因,但文档称这是必需的。

此外,您必须在ViewWillExample方法中调用super:

[super viewWillAppear:animated]

这不是导致崩溃的原因,但医生说这是必需的。

你能帮我们发布代码吗?这是视图第一次出现的时候吗?或者只有当你切换回它的时候?当我切换回它的时候…我想这可能与发布objects有关。你能帮我们发布代码吗?这是视图第一次出现的时候吗?或者只有当你切换回它的时候?当我切换回它的时候…我想这可能与释放对象有关。我不确定从ImageName:返回的对象是否自动释放。您应该关心的是您是否拥有返回的对象。如果你这样做了,你必须在完成后释放它。该方法的名称并不意味着所有权,因此不需要发布。考虑实现细节(如是否已自动发布)是不必要的,也是误导性的。不要太确定从ImageName:返回的对象是否已自动发布。您应该关心的是您是否拥有返回的对象。如果你这样做了,你必须在完成后释放它。该方法的名称并不意味着所有权,因此不需要发布。考虑实施细节(如是否已经自动发布)是不必要的,也是有误导性的。