Objective-C 2.0에서 권장되지 않는 메서드에 플래그를 붙이려면 어떻게 해야 합니까?
저는 꽤 큰 iPad 앱을 개발하는 팀의 일원이며, 그 결과 다양한 클래스를 만들었습니다.문제는 일부 방법은 이제 거의 구식이 되었고, 전체 시스템의 일부가 이 방법을 사용하고 있다는 것을 알고 있기 때문에 아직 간단히 제거하고 싶지 않다는 것입니다.다만, 보다 좋은(구형) 베리에이션이 있어, 대신에 사용할 필요가 있습니다(구형 베리에이션의 일부는 실제로 새로운 것을 호출하고 있습니다만, 클래스 인터페이스 전체가 복잡해지고 있습니다).
특정 메서드를 권장되지 않는 것으로 표시할 수 있는 방법이 있습니까(예:@deprecated
Java 및[Obsolete]
.NET).
애플이 사용하는 것은Availability.h
다음과 같은 태그가 붙어 있습니다.
__OSX_AVAILABLE_BUT_DEPRECATED(__MAC_NA,__MAC_NA,__IPHONE_2_0,__IPHONE_3_0);
...이 방법(+ App Store가 안전한가?) 또는 XCode에서 경고를 표시할 수 있는 대체 방법이 있습니까?
폐지 구문
구문은 메서드를 권장되지 않는 것으로 마크하기 위한 것입니다.
@interface SomeClass
-method __attribute__((deprecated));
@end
또는 다음과 같이 입력합니다.
#include <AvailabilityMacros.h>
@interface SomeClass
-method DEPRECATED_ATTRIBUTE; // or some other deployment-target-specific macro
@end
IMHO, __recommended:
- (void)myDeprecatedMethod __deprecated;
- (int)methodNameDeprecated:(int)param __deprecated;
수업시간에도 유효하다
__deprecated
@interface MyDeprecatedClass
// ... some properties and methods ...
@end
권장 해제 플래그를 사용하여 추가 메시지를 제공하려는 경우 다음 플래그를 사용할 수 있습니다.
@property (strong, nonatomic) NSString *catName
__deprecated_msg("use name instead.");
// -- Or --
@property (strong, nonatomic) NSString *catName
DEPRECATED_MSG_ATTRIBUTE("use name instead.");
// -- Or --
@property (strong, nonatomic) NSString *catName
__attribute__((deprecated("use name instead.")));
위의 플래그를 사용하면 권장하지 않는 이유 또는 향후 개발자가 사용해야 할 방법을 알 수 있습니다.
메서드를 권장되지 않음으로 마크하려면 __attribute__("사용자의 메시지는 여기에 있습니다")를 사용합니다.
실제적인 예로는 맨틀에서
@interface NSValueTransformer (UnavailableMTLPredefinedTransformerAdditions)
+ (NSValueTransformer *)mtl_externalRepresentationTransformerWithModelClass:(Class)modelClass __attribute__((deprecated("Replaced by +mtl_JSONDictionaryTransformerWithModelClass:")));
+ (NSValueTransformer *)mtl_externalRepresentationArrayTransformerWithModelClass:(Class)modelClass __attribute__((deprecated("Replaced by +mtl_JSONArrayTransformerWithModelClass:")));
@end
를 사용합니다.deprecated
속성:
- (int)bar: (int)x __attribute__((deprecated));
언급URL : https://stackoverflow.com/questions/3908715/how-do-i-flag-a-method-as-deprecated-in-objective-c-2-0
'programing' 카테고리의 다른 글
UICollection현재 표시 가능한 셀 인덱스 보기 (0) | 2023.04.11 |
---|---|
아이폰 잠금 해제 시 X코드 "디바이스 잠금" (0) | 2023.04.11 |
npm을 사용하여 bash 스크립트 실행 (0) | 2023.04.11 |
Python Panda를 사용하여 기존 Excel 시트를 새 데이터 프레임에 추가 (0) | 2023.04.11 |
프로세스를 정상적으로 종료하려면 어떤 순서로 신호를 보내야 합니까? (0) | 2023.04.11 |