2012-12-20 4 views
6

Xcode 4.5에서 사용할 때 일부 오래된 샘플 코드에 몇 가지 문제가 있습니다.Xcode 4.5로 속성 가져 오기 도구를 재정의 할 수 없습니다.

- (NSManagedObjectModel *)managedObjectModel { 
    if (_managedObjectModel != nil) 
    { 
     return _managedObjectModel; 
    } 

    NSURL *modelURL = [[NSBundle mainBundle] URLForResource:@"MyPrototype" 
                withExtension:@"momd"]; 
    _managedObjectModel = [[NSManagedObjectModel alloc] 
              initWithContentsOfURL:modelURL]; 
    return _managedObjectModel; 
} 

문제는이 _managedObjectModel를 '볼'수 없기 때문에 Xcode의 여러 오류가 발생한다는 것입니다 : 내 코드에서

나는 다음과 같은 속성은 그럼 난 방법 접근 다음 한

@property (readonly, strong, nonatomic) NSManagedObjectModel *managedObjectModel; 

를 정의 . 접근 자의 이름을 managedObjectModel에서 managedObjectModel2으로 변경하면 모든 것이 잘 동작합니다. 문제는 Xcode 4.5 자동 속성 합성과 관련이 있다고 생각하지만 문제를 피하기 위해 무엇을해야하는지 모르겠습니다. 어떤 제안?

답변

12

생성 할 메소드가없는 경우 Clang이 인스턴스 변수를 자동으로 합성하지 않습니다. 이 경우 읽기 전용 속성을 요청 했으므로 설정자가 없으므로 getter를 제공했습니다. 그냥 @synthesize managedObjectModel=_managedObjectModel 일 수도 있고 인스턴스 변수를 직접 선언 할 수도 있습니다.

+0

감사합니다. 그것으로 문제가 해결되었습니다. – Huibert

+2

@Huibert, 흠뻑 젖었다면 답을 올바른 것으로 표시해야합니다. –

+0

고마워요, 루이스. 나는 그걸 몰랐다. 이것은 나의 첫 번째 질문 이었지만, 마지막 질문은 아니 었습니다. 훌륭한 커뮤니티. – Huibert

관련 문제