문제

그만큼 간단합니다.

라이온을 실행합니다.

  1. 방금 Xcode 4.4
  2. 로 업그레이드했습니다.
  3. 가장 최근의 Xcode 4.3 프로젝트 파일
  4. 로드
  5. 는 @synthesize 코드 라인
  6. 에 댓글을 달았습니다
  7. 및 오류가 많습니다.: (
  8. )

    검증 된 컴파일러는 'LLVM 4.0'으로 설정됩니다.

    다음 나는 동일한 테스트를했지만 Xcode 4.4 내에서 새로운 프로젝트를 만들었고 Voila!자동 @Synthesize는 4.4 프로젝트 내에서 작동합니다.

    자동 @SynThesize 은 코드에 추가 된 new 속성에서 작동하는 것으로 보입니다.그러나 기존 옛날은 오류를 생성합니다.

    다른 누구도 이것을 경험합니까? 내가 확인해야 할 다른 어떤 것들을 확인해야합니까?

    자동 생성 기능이 작동하기를 원합니다.

    감사합니다.

도움이 되었습니까?

해결책

오류는 속성을 선언하는 방법이 아니라 사용하는 방식으로 사용하지 않습니다.

자동 합성 속성 기본값으로

로 뒷받침이있는 백킹 저장소를 만듭니다.

다음과 같이 선언 된 속성이있을 때 코드가 있습니다.

@property (nonatomic, strong) UILabel *sectorLabel;
.

및 자동 sythesize - 컴파일러가 자동으로 생성되는 것입니다 :

@synthesize sectorLabel = _sectorLabel;
.

이제 속성을 통해 액세스 할 수 있습니다.

self.sectorLabel;
.

또는 다음과 같이 백업 저장소에 직접 액세스 할 수 있습니다.

_sectorLabel;
.

다른 팁

해결되었습니다!

그래서 이것은 내가 한 일입니다.

ViewController.h

@interface ViewController : UIViewController
// Public:

@property (nonatomic, strong) UILabel *sectorLabel;

@end
.

ViewController.m

@implementation ViewController

//@synthesize sectorLabel;
.

이 오류가 발생했습니다.

ViewController.m : 48 : 2 : 명시되지 않은 식별자 'SectorLabel'사용;그랬다 '_sectorlabel'을 의미합니까?

코드를 변경 한 순간 :

self.sectorLabel
.

Xcode 4.3은 '자기'를 필요로하지 않고도 컴파일하고 잘 작동했습니다.예어.그러나 Xcode 4.4는 그것에 대해 더 엄격한 것으로 보인다.

답변을 받아들이는 문제는 셀프 .Property를 추가하여 코드의 동작을 변경했습니다.

IVAR 대 속성 대 액세스는 두 가지 다른 것들입니다.올바른 답변은 밑줄을 추가하여 IVAR을 올바르게 사용하도록 코드를 변경하는 것입니다.

이것은 Xcode의 기본 속성 합성을 변경하는 것에 대해 엄격하지 않습니다.또한 대부분의 스타일 가이드에서 Apple은 _ivar 이름을 낙담 시키므로 창문을 추측합니다.

내 코드에서 나는 자기를 사용합니다.내가 속성 getter 및 setter를 통해 액세스하려는 경우.이 동작에 대한 기존 코드를 변경하지 않으면 시간 낭비.

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