답변을 살펴본 결과, here을 보았지만 도움이되지 않았습니다. 컴파일러보다 이라고 말하면서 메소드 선언에만 비추천 속성을 추가합니다. 메서드 구현에 smth를 추가해야합니까?Xcode 4의 메소드를 올바르게 사용 중지하는 방법
감사합니다.
답변을 살펴본 결과, here을 보았지만 도움이되지 않았습니다. 컴파일러보다 이라고 말하면서 메소드 선언에만 비추천 속성을 추가합니다. 메서드 구현에 smth를 추가해야합니까?Xcode 4의 메소드를 올바르게 사용 중지하는 방법
감사합니다.
그냥 선언에 속성을 추가
@interface Blah
- (void)method __attribute__((deprecated));
@end
당신이 포함 제공 번역에 맞는지,이 잘 작동합니다. 속성을 정의에 추가했는데 선언이 아닌 속성을 추가했을 수 있습니까? 그렇지 않으면 데모 (코드 샘플)가 도움이됩니다.
업데이트
위의 방법은 일반적인 메시지를 작동하지만,이 나타나는 그 소리는 IBAction
들과 혼동됩니다.
clang을 사용하면 ibaction
속성이 암시 적으로 삽입됩니다 (이전에는 typedef
이었음). 속성이 선언에 지정된
만 처리기 출력은 다음과 같다 :
// preprocessed declaration
- (void)__attribute__((ibaction))setSomething:(id)sender __attribute__((noreturn));
// preprocessed implementation
- (void)__attribute__((ibaction))setSomething:(id)sender
...
그래서,이 컴파일러는 바로이 숨겨진 장식 혼동되어 나타납니다, 당신은 또한에 속성을 추가해야합니다 메서드가 IBAction
일 때 경고를 표시하지 않도록 구현/정의
clcat을 사용하여 Xcode 4.3.2에서 메소드의 선언 및 구현에 deprecated 속성을 추가해야합니다.
맞습니다. 하지만 왜? –
어깨를 으.. gcc보다 clang에서 다르게 구현 한 것 같습니다. –
이것은 작동하지 않습니다! –
내 컴퓨터에서 작동;) 코드를 게시하십시오! – justin
- (IBAction) showTag __attribute __ ((deprecated)); 나는 이것을 얻는다 : 메소드 구현에 대한 속성과 그것의 선언은 일치해야한다. –