XCode 6.3 경고 : 속성 합성
새로운 Xcode 6.3에서는 다음과 같은 경고가 표시됩니다.
자동 속성 합성은 'homeInt'속성을 합성하지 않습니다. 슈퍼 클래스에 의해 구현되며 @dynamic을 사용하여 의도를 인식합니다.
어떻게 제거 할 수 있습니까?
이 속성 선언은 이미 부모 클래스에서 선언되었으므로 제거했습니다.
의도적으로 수퍼 클래스에서 동일한 속성을 재정의하는 경우 :
@implementation MyClass
@dynamic homeInt;
...
그렇지 않은 경우 속성의 이름을 바꿉니다.
@mplace의 의견에 따라, 필자의 경우 속성 유형을 속성의 원래 클래스의 하위 클래스로 구체화하기 위해 속성을 재정의했습니다. 그래서 @property 재정의가 필요했습니다.
내가 사용하는 것은 다음과 같습니다.
#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wobjc-property-synthesis"
// superclass type for currentValue was "id"
@property (nonatomic, strong) NSDate *currentValue;
#pragma clang diagnostic pop
"-Wno-objc-property-synthesis"가 아니라 "-Wobjc-property-synthesis"입니다.
참조 https://github.com/couchbase/couchbase-lite-ios/issues/660
의도적@dynamic <varName>
으로 수퍼 클래스의 속성을 재정의 한 각 장소를 추가하지 않으 려면 프로젝트 빌드 설정에서 "기타 경고 플래그"에 플래그를 추가 할 수 있습니다 . 이렇게하면 프로젝트 전체에서 경고가 표시되지 않습니다.-Wno-objc-property-synthesis
하위 클래스에 의한이 원인은 다음과 같은 상위 클래스에 대한 동일한 속성 이름 재정의를 정의합니다.
1) 하위 클래스 "AFHTTPSessionManager"는 다음을 정의합니다.
@property (nonatomic, strong) AFHTTPResponseSerializer <AFURLResponseSerialization> * **responseSerializer**;
2) 부모 클래스 "AFURLSessionManager"는 다음을 정의합니다.
@property (nonatomic, strong) id <AFURLResponseSerialization> **responseSerializer**;
3) 위로 경고가 온다! 제거하려면 충돌 속성 이름을 변경하십시오!
4) 또는 제안 된대로 구현 파일에 "@dynamic homeInt"를 추가하십시오.
Xcode 6.3으로 업데이트 한 경우 AFNetworking을 버전 2.5.2로 업데이트하면 이러한 경고가 사라집니다.
@implementation Myclass
@synthesize homeInt = _ homeInt; ...
@종료
참고 URL : https://stackoverflow.com/questions/29534654/xcode-6-3-warning-synthesize-property
'Development Tip' 카테고리의 다른 글
내 앱 내에서 Apple Mail 앱을 시작 하시겠습니까? (0) | 2020.12.02 |
---|---|
SQLITE 데이터베이스 파일 버전을 찾는 방법 (0) | 2020.12.02 |
전략 패턴과 명령 패턴의 차이점 (0) | 2020.12.02 |
Swift에서 String을 Bool로 변환-API 또는 대부분의 Swift와 유사한 접근 방식을 통해 (0) | 2020.12.02 |
UIToolBar 왼쪽 및 오른쪽 패딩 조정 방법 (0) | 2020.12.02 |