EXC_BAD_ACCESS尝试读取NSArray

Sja*_*ien 2 cocoa cocoa-touch objective-c nsuserdefaults nsmutablearray

在下面的代码中,我尝试从plist中读取数据:

 -(void)readPreferences 
    {
        NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
        NSMutableArray * myAppDefaults  = [defaults mutableArrayValueForKey:@"LastList"];
        myCustomObject * savedObject;
        NSUInteger i;
        for (i = 0; i < [myAppDefaults  count]; i++) 
        {
            NSArray * thisArray = [myAppDefaults  objectAtIndex:i];

            savedObject.value1 = [thisArray objectAtIndex:0];
            savedObject.value2 = [thisArray objectAtIndex:1];
            savedObject.value3 = [thisArray objectAtIndex:2];
            savedObject.value4 = [myAppDefaults  objectAtIndex:3];

            [objectsArray addObject:savedObject];
        }

    }
Run Code Online (Sandbox Code Playgroud)

不知何故,当我尝试设置"savedObject.value1"时,我收到"EXC_BAD_ACCESS"错误.

我意识到这很可能是基本的内存管理,或指针/对象的混乱,但我还在学习.我希望有人可以帮助我.最好的问候Sjakelien

Jas*_*son 5

savedObject在设置value1属性时尚未初始化.您需要添加:

savedObject = [[myCustomObject alloc] init];
Run Code Online (Sandbox Code Playgroud)

for循环之前,为了使它成为可以设置属性的有效对象.

  • 不要忘记向该对象发送释放或自动释放. (2认同)