문제

다음 코드에서는 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];
        }

    }

어쨌든 "savedobject.value1"을 설정하려고하면 "exc_bad_access"오류가 발생합니다.

나는 이것이 기본 메모리 관리 또는 포인터/객체의 혼란 일 가능성이 높다는 것을 알고 있지만 여전히 배우고 있습니다. 누군가가 여기서 나를 도울 수 있기를 바랍니다. Sjakelien에 대한 안부

도움이 되었습니까?

해결책

초기화되지 않았습니다 savedObject 당신이 설정할 때 value1 재산. 추가해야합니다.

savedObject = [[myCustomObject alloc] init];

당신 앞에 for 루프 속성을 설정할 수있는 유효한 개체가 되려면 루프.

다른 팁

나는 보이지 않는다 mutableArrayValueForKey 안에 NSUserDefaults. 노력하다 arrayForKey: 대신, 그것은 당신에게 줄 것입니다 NSArray*.

값이 반환 된 것 같습니다 defaults 불변입니다 (파일에서 물건을 얻을 때 의미가 있습니다).

반환 된 값을 확인하십시오 mutableArrayValueForKey, 나는 그것이 nil이라고 생각합니다.

두 번째로 코드는 의미가 없습니다. 시점에서는 저장도를 할당하지만 배열에 반복적으로 삽입합니다. 값을 추출하는 방식조차도 올바르게 보이지 않습니다.

Apple 문서에서 NSUSERDEFAUTLS 참조를 살펴 보는 것이 좋습니다. 기본 사용의 예가 있습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top